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, Sep 23, 2013 at 4:29 PM, Dan Williams <dan.j.williams@xxxxxxxxx> 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>
> ---

Hold off on this one for now... debugging a case where xhci complains
that the slot is not in the enabled state when receiving the address
device (bsr=1) request.
--
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