Re: Scheduling of interrupt transfer delayed on ehci when interval not 1?

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

 



On Tue, 15 Oct 2013, Marcus Overhagen wrote:

> Hello,
> 
> I made a change to the rts5139 driver that got included in kernel 3.11
> (see second patch at end of this email), but Lutz Vieweg reported that
> the patch causes issues for him, because the driver falsely detects
> that the SD card is no longer present after transfer of a few 100 MBs.

Why does the driver make this mistake?

> I do not have this issue with xhci. He is using ehci.
> 
> The USB endpoint specifies a transfer interval of 10. The rts5139

Does the device connect at high speed (480 Mb/s)?

> driver uses the interrupt transfer to infrequently poll for card
> presence, but doesn't queue multiple urbs for periodic transfers.
> 
> The issue seems to be a difference in how early the (first) interrupt
> transfer is scheduled by xhci and ehci when the interval specified in
> the urb is not 1.
> 
> With ehci it seems to be delayed when the interval is not 1.
> With xhci you get warning messages in syslog if interval is not 10.
> 
> My USB knowledge is too limited to properly fix this in xhci or ehci hcd.

What needs to be fixed?  It sounds like xhci-hcd and ehci-hcd are 
working correctly and the problem is in the rts5139 driver.

> Can somebody help me? what is the correct fix for this problem?
> 
> It is possible that the following patch, that increases the timeout
> the driver waits for the interrupt transfer, will fix the problem with ehci.
> However, I expect that the transfer is slightly slower then with ehci,
> compared to kernel 3.10.

bInterval = 10 means the polling period is 64 ms (for a high-speed 
device).  So a timeout of 100 ms should be adequate -- provided the 
device always sends data over the interrupt endpoint without any 
further delay.

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