Re: [PATCH 4/4] usb: xhci: change enumeration scheme to 'new scheme' by default

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

 



On Mon, 23 Sep 2013, Dan Williams wrote:

> Change the enumeration scheme for xhci attached devices from:
> 
>    SetAddress
>    GetDescriptor(8)
>    GetDescriptor(18)
> 
> ...to:
> 
>    GetDescriptor(64)
>    SetAddress
>    GetDescriptor(18)
> 
> ...as some devices misbehave when encountering a SetAddress command
> prior to GetDescriptor.  There are known devices that require this
> enumeration scheme but is unknown how much, if any, regression there
> will be of xhci-attached devices that can not tolerate the change.  For
> now, follow the ehci case and enable 'new scheme' by default.  Of course
> the existing 'old_scheme_first' and 'use_both_schemes' usbcore module
> parameters are available to debug / workaround regressions.
> 
> To support this enumeration scheme on xhci the AddressDevice operation
> needs to be performed twice.  The first instance of the command enables
> the HC's device and slot context info for the device, but omits sending
> the device a SetAddress command (BSR == block set address request).
> Then, after GetDescriptor completes, follow up with the full
> AddressDevice+SetAddress operation.
> 
> Reported-by: David Moore <david.moore@xxxxxxxxx>
> Suggested-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>

The usbcore parts look okay to me.

Did you test this to make sure the GetDescriptor(64) request is sent to
address 0 properly?

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