diff options
author | Kumar Gala <galak@gate.crashing.org> | 2006-01-20 16:57:52 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-20 17:49:55 -0500 |
commit | 8cd42e97bf451bbbb2f54dc571366ae5a72faaea (patch) | |
tree | 9bd591f62813e477da3484bfe159228a7507eeb7 /drivers/usb/host/ehci.h | |
parent | 80cb9aee01245b38325dd84f1359b14a3f01f10d (diff) |
[PATCH] USB: EHCI and Freescale 83xx quirk
On the MPC834x processors the multiport host (MPH) EHCI controller has an
erratum in which the port number in the queue head expects to be 0..N-1
instead of 1..N. If we are on one of these chips we subtract one from
the port number before putting it into the queue head.
Signed-off-by: Kumar Gala <galak@kernel.crashing.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/ehci.h')
-rw-r--r-- | drivers/usb/host/ehci.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index 86af41c41de1..679c1cdcc915 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h | |||
@@ -88,8 +88,11 @@ struct ehci_hcd { /* one per controller */ | |||
88 | unsigned long next_statechange; | 88 | unsigned long next_statechange; |
89 | u32 command; | 89 | u32 command; |
90 | 90 | ||
91 | /* SILICON QUIRKS */ | ||
91 | unsigned is_tdi_rh_tt:1; /* TDI roothub with TT */ | 92 | unsigned is_tdi_rh_tt:1; /* TDI roothub with TT */ |
92 | unsigned no_selective_suspend:1; | 93 | unsigned no_selective_suspend:1; |
94 | unsigned has_fsl_port_bug:1; /* FreeScale */ | ||
95 | |||
93 | u8 sbrn; /* packed release number */ | 96 | u8 sbrn; /* packed release number */ |
94 | 97 | ||
95 | /* irq statistics */ | 98 | /* irq statistics */ |
@@ -639,6 +642,18 @@ ehci_port_speed(struct ehci_hcd *ehci, unsigned int portsc) | |||
639 | 642 | ||
640 | /*-------------------------------------------------------------------------*/ | 643 | /*-------------------------------------------------------------------------*/ |
641 | 644 | ||
645 | #ifdef CONFIG_PPC_83xx | ||
646 | /* Some Freescale processors have an erratum in which the TT | ||
647 | * port number in the queue head was 0..N-1 instead of 1..N. | ||
648 | */ | ||
649 | #define ehci_has_fsl_portno_bug(e) ((e)->has_fsl_port_bug) | ||
650 | #else | ||
651 | #define ehci_has_fsl_portno_bug(e) (0) | ||
652 | #endif | ||
653 | |||
654 | |||
655 | /*-------------------------------------------------------------------------*/ | ||
656 | |||
642 | #ifndef DEBUG | 657 | #ifndef DEBUG |
643 | #define STUB_DEBUG_FILES | 658 | #define STUB_DEBUG_FILES |
644 | #endif /* DEBUG */ | 659 | #endif /* DEBUG */ |