diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2007-01-16 11:59:45 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-02-07 18:44:37 -0500 |
commit | 57e06c11372eccf5acebdd4664eb025fee76c561 (patch) | |
tree | a792559056735005ce7037196509fb151d3c3bc5 /drivers/usb/host/ehci-hcd.c | |
parent | 625b5c9a0069ef1b61feb3ce599b39f1b04b5666 (diff) |
EHCI: force high-speed devices to run at full speed
This patch (as710) adds a sysfs class-device attribute file named
"companion" for EHCI controllers. The file contains a list of port
numbers that are dedicated to the companion controller; by writing a
port number to the file the user can force a high-speed device
attached directly to the computer to run at full speed. (As far as I
know it is not possible to do this for a device attached to an
external hub.) A port is removed from the file by writing the
negative of its port number.
Several users have asked for this facility and it seems like a useful
thing to have. Every now and then one runs across a device which
behaves much better at full speed than at high speed.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 9ec896218feb..92c62911f574 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -388,6 +388,7 @@ static void ehci_stop (struct usb_hcd *hcd) | |||
388 | /* let companion controllers work when we aren't */ | 388 | /* let companion controllers work when we aren't */ |
389 | ehci_writel(ehci, 0, &ehci->regs->configured_flag); | 389 | ehci_writel(ehci, 0, &ehci->regs->configured_flag); |
390 | 390 | ||
391 | remove_companion_file(ehci); | ||
391 | remove_debug_files (ehci); | 392 | remove_debug_files (ehci); |
392 | 393 | ||
393 | /* root hub is shut down separately (first, when possible) */ | 394 | /* root hub is shut down separately (first, when possible) */ |
@@ -563,6 +564,7 @@ static int ehci_run (struct usb_hcd *hcd) | |||
563 | * since the class device isn't created that early. | 564 | * since the class device isn't created that early. |
564 | */ | 565 | */ |
565 | create_debug_files(ehci); | 566 | create_debug_files(ehci); |
567 | create_companion_file(ehci); | ||
566 | 568 | ||
567 | return 0; | 569 | return 0; |
568 | } | 570 | } |