UHCI: Eliminate asynchronous skeleton Queue Headers
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 19 Feb 2007 20:52:45 +0000 (15:52 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 23 Feb 2007 23:03:45 +0000 (15:03 -0800)
commit17230acdc71137622ca7dfd789b3944c75d39404
tree67eb75c5e8d254b2d5490ea9982efe73952f90d5
parent28b9325e6ae45ffb5e99fedcafe00f25fcaacf06
UHCI: Eliminate asynchronous skeleton Queue Headers

This patch (as856) attempts to improve the performance of uhci-hcd by
removing the asynchronous skeleton Queue Headers.  They don't contain
any useful information but the controller has to read through them at
least once every millisecond, incurring a non-zero DMA overhead.

Now all the asynchronous queues are combined, along with the period-1
interrupt queue, into a single list with a single skeleton QH.  The
start of the low-speed control, full-speed control, and bulk sublists
is determined by linear search.  Since there should rarely be more
than a couple of QHs in the list, the searches should incur a much
smaller total load than keeping the skeleton QHs.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/uhci-debug.c
drivers/usb/host/uhci-hcd.c
drivers/usb/host/uhci-hcd.h
drivers/usb/host/uhci-q.c