diff options
author | Dan Streetman <ddstreet@ieee.org> | 2006-05-24 12:39:16 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-06-21 18:04:13 -0400 |
commit | ba47f66bd9fc451e9ce88f291e057b2f4910d01c (patch) | |
tree | a05a5c8b59d8f15b50d84b8cb3d2810e72d9223b /drivers/usb/host/Kconfig | |
parent | 3428cc43d23f125dcb31c981aa91535dd3c4cb0d (diff) |
[PATCH] improved TT scheduling for EHCI
This updates the EHCI driver by adding an improved scheduler for the
transaction translators, found in USB 2.0 hubs and used for low and
full speed devices.
- adds periodic_tt_usecs() and some helper functions, which does
the same thing that "periodic_usecs" does, except on the other
side of the TT, i.e. it calculates the low/fullspeed bandwidth
usage instead of highspeed.
- adds a tt_available() function which is the new implementation
of what tt_no_collision() does ... while tt_no_collision() ensures
that each TT handles only 1 periodic transfer at a time (a very
pessimistic approach) this version instead tracks bandwidth and
allows each TT to handle as many transfers as will fit on each TT's
downstream bus (closer to best-case).
The new scheduler is selected by a config option, marked as EXPERIMENTAL
so it can be tested (and more broadly reviewed) for a while until it
seems safe to remove the original scheduler.
Signed-off-by: Dan Streetman <ddstreet@ieee.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/Kconfig')
-rw-r--r-- | drivers/usb/host/Kconfig | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index e27b79a3c05f..c060eb9b3b19 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
@@ -47,7 +47,25 @@ config USB_EHCI_ROOT_HUB_TT | |||
47 | controller is needed. It's safe to say "y" even if your | 47 | controller is needed. It's safe to say "y" even if your |
48 | controller doesn't support this feature. | 48 | controller doesn't support this feature. |
49 | 49 | ||
50 | This supports the EHCI implementation from TransDimension Inc. | 50 | This supports the EHCI implementation that's originally |
51 | from ARC, and has since changed hands a few times. | ||
52 | |||
53 | config USB_EHCI_TT_NEWSCHED | ||
54 | bool "Improved Transaction Translator scheduling (EXPERIMENTAL)" | ||
55 | depends on USB_EHCI_HCD && EXPERIMENTAL | ||
56 | ---help--- | ||
57 | This changes the periodic scheduling code to fill more of the low | ||
58 | and full speed bandwidth available from the Transaction Translator | ||
59 | (TT) in USB 2.0 hubs. Without this, only one transfer will be | ||
60 | issued in each microframe, significantly reducing the number of | ||
61 | periodic low/fullspeed transfers possible. | ||
62 | |||
63 | If you have multiple periodic low/fullspeed devices connected to a | ||
64 | highspeed USB hub which is connected to a highspeed USB Host | ||
65 | Controller, and some of those devices will not work correctly | ||
66 | (possibly due to "ENOSPC" or "-28" errors), say Y. | ||
67 | |||
68 | If unsure, say N. | ||
51 | 69 | ||
52 | config USB_ISP116X_HCD | 70 | config USB_ISP116X_HCD |
53 | tristate "ISP116X HCD support" | 71 | tristate "ISP116X HCD support" |