This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

usb sound problem on dm36x

Other Parts Discussed in Thread: PCM2901

Hi,

our dm365 based board uses the TI Burr-Brown pcm2901 codec as the sound interface. The application, which uses the audio, needs to be restarted from time to time, and we started to notice that after some random number of restarts the audio capture stops working. After investigation, we found the simple way to reproduce the failure, and also found that it happens with an external USBcard (Edirol UA-25 sound interface) too. So we decided to check if we could reproduce it on the DM36X EVM board we have. And we got the same failure, so we concluded that it is not specific for our board.

Here is how to reproduce it:
The hardware: DM36X EVM, rev E
The software: ti-dvsdk_dm365-evm_4_01_00_09, kernel
linux-2.6.32.17-psp03.01.01.38

1) install the standard dvsdk rootfs and kernel on a SD card

2) reconfigure and compile the kernel to enable snd-usb-audio as a module
make linux_myconfig, Device Drivers --> Sound card support -->
Advanced Linux Sound Architecture --> [*] USB sound devices --> <M>
USB Audio/MIDI driver

3) install the new kernel and modules on the SD card.

4) Boot the system, depmod -a, and insert an USB sound card, the
driver will be loaded:

root@dm365-evm:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0582:0073 Roland Corp. EDIROL UA-25
root@dm365-evm:~# ls -l /proc/asound/
lrwxrwxrwx    1 root     root            5 Jan 12 23:01 EVM -> card0
lrwxrwxrwx    1 root     root            5 Jan 12 23:01 UA25 -> card1
dr-xr-xr-x        4 root     root            0 Jan 12 23:01 card0
dr-xr-xr-x        4 root     root            0 Jan 12 23:01 card1
-r--r--r--           1 root     root            0 Jan 12 23:01 cards
-r--r--r--           1 root     root            0 Jan 12 23:01 devices
-r--r--r--           1 root     root            0 Jan 12 23:01 hwdep
-r--r--r--           1 root     root            0 Jan 12 23:01 pcm
-r--r--r--           1 root     root            0 Jan 12 23:01 timers
-r--r--r--           1 root     root            0 Jan 12 23:01 version

5) capture from the card 1, until a failure:
root@dm365-evm:~# while arecord -d 1 -f cd -D hw:1,0 test.wav; do date; done
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:35 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:37 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:38 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:39 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:40 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:42 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Wed Jan 12 20:42:43 UTC 2011
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
arecord: pcm_read:1617: read error: Input/output error

6) After that, the system still detects the sound card plug/unplug events (the kernel reports usb plug/unplug and the driver detects the card), but the card doesn't work anymore, arecord fails immediately. Reloading snd-usb-audio module doesn't help either. What helps is to reload musb_hdrc driver (needs to be compiled as a module).

I also inserted a USB memory stick when the system is in that state, and the system completely locked-up.

Memory stick inserted BEFORE the sound card failure (normal):


root@dm365-evm:~# usb 1-1: new high speed USB device using musb_hdrc
and address 3
usb 1-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices

root@dm365-evm:~# scsi 0:0:0:0: Direct-Access     Kingston
DataTraveler G3  1.00 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 7827392 512-byte logical blocks: (4.00 GB/3.73 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
FAT: invalid media value (0x00)
VFS: Can't find a valid FAT filesystem on dev sda.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on sda1, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with writeback data mode.

Memory stick inserted AFTER the failure:

root@dm365-evm:~# usb 1-1: new high speed USB device using musb_hdrc
and address 5
usb 1-1: configuration #1 chosen from 1 choice
scsi1 : SCSI emulation for USB Mass Storage devices

... and locked-up in a couple of seconds after the last message

Could it be that the DM36x usb host controller (or musb_hdrc driver)
has problems with ISO transfer?

Thank you

---

   Roma

  • Roma,

    Please test with DMA disabled and see if that works. This would confirm if the issue is with CPPI3.0 DMA. You can disable the DMA at USB support->Inventra->disable DMA.

    Regards,

    Ajay

  • Yes it also happens with DMA off.

    I attached a log with musb full debug and usb debug. I had to add a couple of messages of my own to the sound/usb/usbaudio.c, so you can see musb events relative to the sound device open/close.

    There is something about STALLING ENDPOINT right after the device was closed - I guess it is what that had happened.

    Thank you

    ---

       Roma

  • Roman,

    I can see "musb_host_rx 1517: end 3 RX proto error" in your log and it seem this error is from INTERRUPT IN endpoint of your device. This error means that device has not responded either with data or NAK packets for IN token of host. How many total endpoint are present in your audio device? You can print the value of cat /proc/bus/usb/devcies when CONFIG_USB_DEVICEFS is enabled.

    Regards,
    Ajay

  • Here it is:

    root@dm365-evm:~# cat /proc/bus/usb/devices 

     

    T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1

    B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0

    D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

    P:  Vendor=1d6b ProdID=0002 Rev= 2.06

    S:  Manufacturer=Linux 2.6.32.17-davinci1 musb-hcd

    S:  Product=MUSB HDRC host driver

    S:  SerialNumber=musb_hdrc

    C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA

    I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

    E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

     

    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0

    D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=ff MxPS= 8 #Cfgs=  1

    P:  Vendor=0582 ProdID=0074 Rev= 1.07

    S:  Manufacturer=Roland

    S:  Product=EDIROL UA-25

    C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=480mA

    I:* If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=02 Prot=00 Driver=(none)

    I:  If#= 0 Alt= 1 #EPs= 1 Cls=ff(vend.) Sub=02 Prot=00 Driver=(none)

    E:  Ad=01(O) Atr=09(Isoc) MxPS= 320 Ivl=1ms

    I:* If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=02 Prot=00 Driver=(none)

    I:  If#= 1 Alt= 1 #EPs= 1 Cls=ff(vend.) Sub=02 Prot=00 Driver=(none)

    E:  Ad=82(I) Atr=05(Isoc) MxPS= 320 Ivl=1ms

    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=00 Driver=(none)

    E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms

    E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms

    I:  If#= 2 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=00 Driver=(none)

    E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms

    E:  Ad=84(I) Atr=03(Int.) MxPS=  32 Ivl=1ms

    Also, on my pc, just this device (lsusb -v):
    Bus 005 Device 003: ID 0582:0074 Roland Corp. EDIROL UA-25
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.10
      bDeviceClass          255 Vendor Specific Class
      bDeviceSubClass         0 
      bDeviceProtocol       255 
      bMaxPacketSize0         8
      idVendor           0x0582 Roland Corp.
      idProduct          0x0074 EDIROL UA-25
      bcdDevice            1.07
      iManufacturer           1 Roland
      iProduct                2 EDIROL UA-25
      iSerial                 0 
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength          155
        bNumInterfaces          3
        bConfigurationValue     1
        iConfiguration          0 
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              480mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           0
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      2 
          bInterfaceProtocol      0 
          iInterface              0 
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       1
          bNumEndpoints           1
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      2 
          bInterfaceProtocol      0 
          iInterface              0 
          ** UNRECOGNIZED:  07 24 01 01 00 01 00
          ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 80 bb 00
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            9
              Transfer Type            Isochronous
              Synch Type               Adaptive
              Usage Type               Data
            wMaxPacketSize     0x0140  1x 320 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        1
          bAlternateSetting       0
          bNumEndpoints           0
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      2 
          bInterfaceProtocol      0 
          iInterface              0 
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        1
          bAlternateSetting       1
          bNumEndpoints           1
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      2 
          bInterfaceProtocol      0 
          iInterface              0 
          ** UNRECOGNIZED:  07 24 01 07 00 01 00
          ** UNRECOGNIZED:  0b 24 02 01 02 03 18 01 80 bb 00
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            5
              Transfer Type            Isochronous
              Synch Type               Asynchronous
              Usage Type               Data
            wMaxPacketSize     0x0140  1x 320 bytes
            bInterval               1
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        2
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      3 
          bInterfaceProtocol      0 
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x03  EP 3 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0020  1x 32 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x84  EP 4 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0020  1x 32 bytes
            bInterval               0
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        2
          bAlternateSetting       1
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      3 
          bInterfaceProtocol      0 
          iInterface              0 
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x03  EP 3 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0020  1x 32 bytes
            bInterval               1
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x84  EP 4 IN
            bmAttributes            3
              Transfer Type            Interrupt
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0020  1x 32 bytes
            bInterval               1
    Device Status:     0x0000
      (Bus Powered)
    Thanks
    ---
       Roma

  • Thanks for details. There is an INTERRUPT endpoint in Interface#2 Alt=1. I am not sure why the device not responding on this endpoint and thus we are getting "Proto error".

    I:  If#= 2 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=00 Driver=(none)

    E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms

    E:  Ad=84(I) Atr=03(Int.) MxPS=  32 Ivl=1ms

    Regards,
    Ajay

  • Thanks for details. There is an INTERRUPT endpoint in Interface#2 Alt=1. I am not sure why the device not responding on this endpoint and thus we are getting "Proto error".

    I:  If#= 2 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=03 Prot=00 Driver=(none)

    E:  Ad=03(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms

    E:  Ad=84(I) Atr=03(Int.) MxPS=  32 Ivl=1ms

    would suggest to try out with some other audio device.

    Regards,
    Ajay

  • Yes, we tried with another device, actually it all started with Burr-Brown from TI

    Here is the content of /proc/bus/usb/devices. On our board it is connected via an usb hub, but nothing else is connected to the hub.

    BCD6117# cat /proc/bus/usb/devices 

     

    T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1

    B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0

    D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

    P:  Vendor=1d6b ProdID=0002 Rev= 2.06

    S:  Manufacturer=Linux 2.6.32.17-epiphan musb-hcd

    S:  Product=MUSB HDRC host driver

    S:  SerialNumber=musb_hdrc

    C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA

    I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

    E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

     

    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 4

    D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=02 MxPS=64 #Cfgs=  1

    P:  Vendor=0424 ProdID=2514 Rev= b.b0

    C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  2mA

    I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=01 Driver=hub

    E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

    I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=02 Driver=hub

    E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

     

    T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  3 Spd=12  MxCh= 0

    D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1

    P:  Vendor=08bb ProdID=2901 Rev= 1.00

    S:  Manufacturer=Burr-Brown from TI              

    S:  Product=USB Audio CODEC 

    C:* #Ifs= 4 Cfg#= 1 Atr=c0 MxPwr=  0mA

    I:* If#= 0 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio

    I:* If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    I:  If#= 1 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=02(O) Atr=09(Isoc) MxPS= 192 Ivl=1ms

    I:  If#= 1 Alt= 2 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=02(O) Atr=09(Isoc) MxPS=  96 Ivl=1ms

    I:  If#= 1 Alt= 3 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=02(O) Atr=09(Isoc) MxPS=  96 Ivl=1ms

    I:  If#= 1 Alt= 4 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=02(O) Atr=09(Isoc) MxPS=  48 Ivl=1ms

    I:  If#= 1 Alt= 5 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=02(O) Atr=09(Isoc) MxPS=  96 Ivl=1ms

    I:  If#= 1 Alt= 6 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=02(O) Atr=09(Isoc) MxPS=  48 Ivl=1ms

    I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    I:  If#= 2 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS= 196 Ivl=1ms

    I:  If#= 2 Alt= 2 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  98 Ivl=1ms

    I:  If#= 2 Alt= 3 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS= 180 Ivl=1ms

    I:  If#= 2 Alt= 4 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  90 Ivl=1ms

    I:  If#= 2 Alt= 5 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS= 132 Ivl=1ms

    I:  If#= 2 Alt= 6 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  66 Ivl=1ms

    I:  If#= 2 Alt= 7 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  92 Ivl=1ms

    I:  If#= 2 Alt= 8 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  46 Ivl=1ms

    I:  If#= 2 Alt= 9 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  68 Ivl=1ms

    I:  If#= 2 Alt=10 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  34 Ivl=1ms

    I:  If#= 2 Alt=11 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  34 Ivl=1ms

    I:  If#= 2 Alt=12 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  17 Ivl=1ms

    I:  If#= 2 Alt=13 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=  18 Ivl=1ms

    I:  If#= 2 Alt=14 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=05(Isoc) MxPS=   9 Ivl=1ms

    I:  If#= 2 Alt=15 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=0d(Isoc) MxPS=  48 Ivl=1ms

    I:  If#= 2 Alt=16 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=0d(Isoc) MxPS=  24 Ivl=1ms

    I:  If#= 2 Alt=17 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=0d(Isoc) MxPS=  24 Ivl=1ms

    I:  If#= 2 Alt=18 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

    E:  Ad=84(I) Atr=0d(Isoc) MxPS=  12 Ivl=1ms

    I:* If#= 3 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid

    E:  Ad=85(I) Atr=03(Int.) MxPS=   1 Ivl=10ms

    Log for the Burr-Brown, the same endpoint error, is attached
    Thanks

  • Do you see different behavior when connecting the USB device WITHOUT the hub?

  • No,  behavior is the same, I tried to remove as much uncertainties as possible. This behavior is observed on the EVM 365 with the sound device plugged directly into the usb port, so no hubs, except the root hub, of course. See the beginning of this thread. Message log is attached to the 3-25 4:50PM message.

    ---

       Roma

  • Hi

    I observe from you initial logs, when arecord in loop, there is pcm error displayed and further any usb device is not working.

    1) Do you see the similar issue when you record the audio from usb audio device continuously without being stopped in between.

    2) Is it the issue due to start/stop control, the dma is got locked up.

    3) Can you enable the debug level 8 and provide the logs to us (echo D8 > /proc/driver/musb_hdrc).

    4) Looks like the dma is not locked up state and not coming out except reload of musb_hdrc driver.

    Regards

    Ravi B

     

  • typo error

    4) Looks like the dma is locked up state and not coming out except reload of musb_hdrc driver

  • One of the earlier replies indicated that the audio test was repeated using a different USB sound card;  different from the TI Burr-Brown device.

    When the other device(s) was used, was the same problem observed.  If not, could you please attach the corresponding logs?

  • Marcus, I was using a Ediroll UA-25 external usb device on the 365 eval board, I started this thread only after I confirmed that it was not only our board design / Burr-Brown issue. All this discussion is about UA-25/365 eval board, and the log attached on march 25th is a UA-25/evalboard/ti-dvsdk_dm365-evm_4_01_00_09 log. It is not about Burr-Brown, sorry if I wasn't clear. I thought if we excluded our board and software, it would be easier for TI to reproduce the problem, you don't have our board, but you have eval boards.

    If you need more info or logs, let me know.

    Thanks

     

  • As Ajay highlighted the problem starts when the USB audio device fails to respond to the host request to send data.  As a result, the host gets into a bad state.

    As a quick test, could you please initiate a phy reset when the USB fails to respond, to see if this allows the USB stack to recover.  The phy reset sequence is as follows

    download the attached binary to you filesystem and execute the following command.

    ./mem -4 0x01c40034 0x21e1;./mem  -4 0x01c40034 0x21e0

    Marcushttp://e2e.ti.com/cfs-file.ashx/__key/CommunityServer-Discussions-Components-Files/354/3365.mem