[PATCH 0/3] Adjust isochronous scheduling in ehci-hcd

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

 



Greg:

This series of three patches modifies the isochronous scheduling
routine in ehci-hcd, adding changes that we need for proper operation
with tasklets (with a new inline routine needed in usbcore).

The problem is that we have to maintain the existing API guarantee that
URBs submitted in a completion handler will keep an isochronous stream
alive, maintaining synchronization with the device.  Until recently
this wasn't an issue; URBs submitted by a completion handler would be
processed while the giveback operation was in progress, so the endpoint
queue would never appear to be empty.

But now completion handlers run in a separate tasklet context.  The
giveback operation will end before the completion handler runs and
submits any URBs.  Therefore we need a way to tell whether a particular
URB submission was made by a completion handler, and we need to handle
the case where the endpoint queue does empty out temporarily.

That's what these patches do.  The first one adds a mechanism to 
usbcore for determining whether an endpoint's completion handler is 
running.  The other two modify ehci-hcd to do the right thing when the 
queue gets an underrun.

These changes are intended to avoid bad side effects in the USB audio
driver when interrupt latency causes a delay in the isochronous stream.  
Since the tasklet changes have already been accepted, I think these
patches will also need to go to Linus before the current merge window
closes.

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