aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-01-24 15:30:34 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 17:35:06 -0500
commitc06d4dcf5034ee2289a921b9b2c547f3fed2d878 (patch)
treeced2640ecaa9b8a9a2e3ce8fdfcaf16b6f1568bc
parentcd4cdc93ce04b562412df6c0cf25c564ab2522ac (diff)
usb: ehci should use u16 for isochronous intervals
While most isochronous endpoints have short polling intervals, the EHCI driver won't necessarily handle larger ones correctly. This patch switches to use a "u16" to represent those periods, not a u8, since it can always work: the largest expressible period is 2^15 units ... not the previous too-short limit of 128 frames (full or low speeds) or microframes (high speed, 32 frames). This bug is essentially theoretical, since the few ISO endpoints I've seen which don't use one transfer per frame are high speed ones using more than that (including high bandwidth, 24 KB/msec). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/host/ehci.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 42969e9d8c44..bf92d209a1a9 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -550,8 +550,8 @@ struct ehci_iso_stream {
550 * trusting urb->interval == f(epdesc->bInterval) and 550 * trusting urb->interval == f(epdesc->bInterval) and
551 * including the extra info for hw_bufp[0..2] 551 * including the extra info for hw_bufp[0..2]
552 */ 552 */
553 u8 interval;
554 u8 usecs, c_usecs; 553 u8 usecs, c_usecs;
554 u16 interval;
555 u16 tt_usecs; 555 u16 tt_usecs;
556 u16 maxp; 556 u16 maxp;
557 u16 raw_mask; 557 u16 raw_mask;