How to set USB_PORT_QUIRK_OLD_SCHEME on an usb-port ?

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

 



Hi All,

I have been debugging an issue with a 2-in-1 which
consists of a tablet + a kbd-dock, where the device
turns into a clamshell when docked into the kbd-dock.

The kbd dock is connected via pogo-pins. This works
fine when docked at boot. But there is an enumeration
issue when hot-docked (and the keyboard looses power
when the lid is closedm so this also triggers after
a suspend/resume):

[ 3498.924190] usb 1-3: new full-speed USB device number 5 using xhci_hcd
[ 3499.041725] usb 1-3: device descriptor read/64, error -71
[ 3515.215890] usb 1-3: device descriptor read/64, error -110
[ 3515.440369] usb 1-3: new full-speed USB device number 6 using xhci_hcd
[ 3515.603544] usb 1-3: New USB device found, idVendor=06cb, idProduct=73f5, bcdDevice= 0.02
[ 3515.603574] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3515.603596] usb 1-3: Product: ITE Device(8910)
[ 3515.603614] usb 1-3: Manufacturer: ITE Tech. Inc.

Note there is about 6 seconds before the keyboard becomes
usable, which is quite long when trying to unlock the
laptop after opening the lid.

If I set the USB_PORT_QUIRK_OLD_SCHEME on the port used by the kbd-dock:

echo 1 >  /sys/devices/pci0000\:00/0000\:00\:14.0/usb1/1-0\:1.0/usb1-port3/quirks

Then this changes to:

[ 4467.875008] usb 1-3: new full-speed USB device number 7 using xhci_hcd
[ 4467.878483] usb 1-3: Device not responding to setup address.
[ 4468.082476] usb 1-3: Device not responding to setup address.
[ 4468.289990] usb 1-3: device not accepting address 7, error -71
[ 4468.614928] usb 1-3: new full-speed USB device number 8 using xhci_hcd
[ 4468.662392] usb 1-3: New USB device found, idVendor=06cb, idProduct=73f5, bcdDevice= 0.02
[ 4468.662423] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 4468.662444] usb 1-3: Product: ITE Device(8910)
[ 4468.662461] usb 1-3: Manufacturer: ITE Tech. Inc.

Which is a lot better wrt making the keyboard available for
use in a timely manner.

So now I'm looking into a way to automatically do this. I would
prefer to keep the handling of this out of the kernel, so I looked into
udev, but it seems that the usb_port_device_type device-s registered by
usb_hub_create_port_device() are not visible to udev?

At least I'm not seeing them, in the output of "udevadm info -e"


Note another option would be to set the global old_scheme_first kernel
cmdline parameter on this 2-in-1. That can be done with a simple
dmi_system_id table on which to do this, but adding such a table
seems undesirable.


A third option I guess would be to try and improve the probe time
of the kbd-dock under the new scheme.


Any input on this would be much appreciated.

Regards,

Hans





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

  Powered by Linux