Re: System can't recognise specific USB device (Intel Bay Trail)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 13 May 2017, Nuno Vitorino wrote:

> Hi,
> 
> I�m working with two different Intel Bay Trail motherboards based on the
> J1900 processor with Debian Jessie (kernel 3.16.39). Both are exhibiting a
> strange behaviour when connecting a specific USB device, a Digital to
> Digital Converter (DDC) which works via USB Audio Class 2 (snd-usb-audio).
> When I connect the device, it�s not listed at all as a USB device on
> /sys/bus/usb/devices. With lsusb �v, it shows that the Intel Hub for Port 2,
> where the device is connected, has the following status: 
> 
> Port 2: 0001.0101 C_CONNECT power connect

This means the device has successfully attached its pull-up resistor 
to the D+ data line.  But the port is not enabled.

> If I disconnect the device, it becomes just �power�. I�ve installed usbmon
> and I could see traffic on the bus continuously � see the contents at the
> end of the message. These are the only signs of life I get. There are no
> dmesg, kernel or syslog error messages whatsoever.
> 
> The USB port works fine with a lot of other devices such as keyboards, USB
> DACs and other USB DDCs. Now, this would seem to point to a faulty device
> except for the following facts:
> 
> 1. The device works fine if I attach a simple, bus-powered, USB hub to the
> same port. 

I don't understand.  How can you attach both the failing device and a
USB hub to the same port?  It's not possible to plug more than one
connector into a port at a time.

Do you mean that if you plug a USB hub into the port and then plug the 
device into the hub, it works?

> 2. The device works fine on an Intel DN2800 motherboard using the exact
> Debian Jessie version.
> 
> I�ve tried a number of things to no avail:
> 
> 1. Installed the 4.11 kernel
> 2. Disabling EHCI and using xHCI instead
> 3. Connected to a USB 3 port instead
> 
> This seems to indicate some quirk specific to the Intel USB Hub controller.

Actually, it indicates some quirk specific to the device.  If it were a 
problem with Intel's USB hub controller then the device wouldn't work 
when plugged into a different model Intel motherboard, and it would 
work when plugged into a USB-3 port (which doesn't use the Intel hub 
controller).

> Any clues for what this can be?
> 
> See below the results of lspci �vv, lsusb �v and usbmon.
> 
> Thanks in advance for any help.
> 
> Nuno Vitorino
> 
> lspci �vv
...

> lsusb �v
...

> Usbmon
> 
> ffff880273fcf880 2363504126 C Ii:1:002:1 0:2048 1 = 04
> ffff880273fcf880 2363504144 S Ii:1:002:1 -115:2048 1 <
> ffff880275298280 2363504217 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363504300 C Ci:1:002:0 0 4 = 01010100

This shows the device being connected.

> ffff880275298280 2363504452 S Co:1:002:0 s 23 01 0010 0002 0000 0
> ffff880275298280 2363504547 C Co:1:002:0 0 0

The kernel tells the hub to clear the Connect-Change status.

> ffff880275298280 2363504609 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363504683 C Ci:1:002:0 0 4 = 01010000
> ffff880275298280 2363536146 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363536303 C Ci:1:002:0 0 4 = 01010000
> ffff880275298280 2363568216 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363568427 C Ci:1:002:0 0 4 = 01010000
> ffff880275298280 2363600156 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363600301 C Ci:1:002:0 0 4 = 01010000
> ffff880275298280 2363632139 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363632308 C Ci:1:002:0 0 4 = 01010000

After 130 ms the device is still connected (the connection is
debounced).

> ffff880275298280 2363632346 S Co:1:002:0 s 23 03 0004 0002 0000 0
> ffff880275298280 2363632522 C Co:1:002:0 0 0

The kernel tells the hub to reset the port, which will enable it.

> ffff880275298280 2363648144 S Ci:1:002:0 s a3 00 0000 0002 0004 4 <
> ffff880275298280 2363648306 C Ci:1:002:0 0 4 = 01011100

The hub's port status indicates that the reset has ended, the port is
not enabled, and the device has disconnected and reconnected.

> ffff880275298280 2363648345 S Co:1:002:0 s 23 01 0014 0002 0000 0
> ffff880275298280 2363648418 C Co:1:002:0 0 0
> ffff880275298280 2363648511 S Co:1:002:0 s 23 01 0001 0002 0000 0
> ffff880275298280 2363648738 C Co:1:002:0 0 0
> ffff880275298280 2363648794 S Co:1:002:0 s 23 01 0001 0002 0000 0
> ffff880275298280 2363649080 C Co:1:002:0 0 0

The kernel tells the hub to clear the Reset-Changed status and the 
Enabled status (which wasn't set to begin with, because the reset 
failed).

> (Repeats this block continuously)

There's not much we can do when the hardware says that the port can't
be reset successfully because the device has disconnected.

It sounds like this device is not quite compliant with the USB spec.  
It's close enough to work with some motherboards or when plugged into 
an external hub, but not close enough to work with your Bay Trail 
motherboards.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux