Re: xHCI: Limiting host bInterval for super speed endpoints for Texas Instruments host controllers

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

 



Thanks Alan and Sarah.

On Thu, Jun 30, 2011 at 1:22 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 30 Jun 2011, Sarah Sharp wrote:
>> On Thu, Jun 30, 2011 at 09:19:02AM -0500, Schauer, Dwight wrote:
>> > Hi,
>> >
>> > I've not fully implemented and tested this yet, I just wanted to make sure I was on the right track as far as what to modify in the xhci_hcd module to limit bInterval for super speed endpoints.
>>
>> It helps if you Cc me. :)  I often end up ignoring the Linux USB mailing
>> list for days if I'm hacking on some patchset.

I'll try to remember that for next time, as I hope to have this patch
done and submitted prior to July 11th. :)

>>
>> > With the TI USB3 host controllers we have found that there is an intermittent enumeration issue with devices whose interrupt EP binterval >7. As a result the xHCI Driver should program binterval = 7 for any device reporting binterval > 7 on the interrupt EP.
>>
>> From your patch, it looks like only SuperSpeed interrupt endpoints are
>> effected, is that true?

Yes, that is correct. "Program bInterval=7 for any Super Speed
Interrupt endpoint w/ binterval > 7" is the behavior needed with this
patch.

>>
>> > I'm putting the clamping of bInterval in xhci_endpoint_init, but am not sure if this is the correct location.
>>
>> It's probably the right place for it.  Another way to do it might be to
>> have the USB core change the stored device descriptors before drivers
>> have a chance to bind to the device.  Alan might have an opinion on
>> this.

OK, I had not followed how ep_ctx->ep_info is being used higher up,
this just seemed to be the place to put it. Do I need to do something
specific with ep_ctx->ep_info in xhci_endpoint_init, or is that
handled automatically to set the bInterval?

It also chose xhci_endpoint_init as it has the xhci pointer, so that
xhci->quirks can checked. Functions lower down did not have xhci
passed in.

> This is a hardware-specific problem and usbcore knows nothing about the
> quirks of various host controllers.  It definitely does not belong in
> usbcore.

Agreed, this is specific to TI's host controllers.

> Besides, there already are occasions where host controller drivers will
> reduce an interrupt endpoint's interval below the value requested in an
> URB or stored in the endpoint descriptor.

Alright.

---
Dwight Schauer
Texas Instruments, Inc.
--
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