|
@@ -128,6 +128,7 @@ struct ehci_hcd { /* one per controller */
|
|
|
unsigned has_fsl_port_bug:1; /* FreeScale */
|
|
|
unsigned big_endian_mmio:1;
|
|
|
unsigned big_endian_desc:1;
|
|
|
+ unsigned big_endian_capbase:1;
|
|
|
unsigned has_amcc_usb23:1;
|
|
|
unsigned need_io_watchdog:1;
|
|
|
unsigned broken_periodic:1;
|
|
@@ -605,12 +606,18 @@ ehci_port_speed(struct ehci_hcd *ehci, unsigned int portsc)
|
|
|
* This attempts to support either format at compile time without a
|
|
|
* runtime penalty, or both formats with the additional overhead
|
|
|
* of checking a flag bit.
|
|
|
+ *
|
|
|
+ * ehci_big_endian_capbase is a special quirk for controllers that
|
|
|
+ * implement the HC capability registers as separate registers and not
|
|
|
+ * as fields of a 32-bit register.
|
|
|
*/
|
|
|
|
|
|
#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO
|
|
|
#define ehci_big_endian_mmio(e) ((e)->big_endian_mmio)
|
|
|
+#define ehci_big_endian_capbase(e) ((e)->big_endian_capbase)
|
|
|
#else
|
|
|
#define ehci_big_endian_mmio(e) 0
|
|
|
+#define ehci_big_endian_capbase(e) 0
|
|
|
#endif
|
|
|
|
|
|
/*
|