aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r--drivers/usb/host/ehci.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 333ddc156919..bd6ff489baf9 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -118,6 +118,7 @@ struct ehci_hcd { /* one per controller */
118 struct timer_list watchdog; 118 struct timer_list watchdog;
119 unsigned long actions; 119 unsigned long actions;
120 unsigned stamp; 120 unsigned stamp;
121 unsigned periodic_stamp;
121 unsigned random_frame; 122 unsigned random_frame;
122 unsigned long next_statechange; 123 unsigned long next_statechange;
123 ktime_t last_periodic_enable; 124 ktime_t last_periodic_enable;
@@ -128,12 +129,14 @@ struct ehci_hcd { /* one per controller */
128 unsigned has_fsl_port_bug:1; /* FreeScale */ 129 unsigned has_fsl_port_bug:1; /* FreeScale */
129 unsigned big_endian_mmio:1; 130 unsigned big_endian_mmio:1;
130 unsigned big_endian_desc:1; 131 unsigned big_endian_desc:1;
132 unsigned big_endian_capbase:1;
131 unsigned has_amcc_usb23:1; 133 unsigned has_amcc_usb23:1;
132 unsigned need_io_watchdog:1; 134 unsigned need_io_watchdog:1;
133 unsigned broken_periodic:1; 135 unsigned broken_periodic:1;
134 unsigned amd_pll_fix:1; 136 unsigned amd_pll_fix:1;
135 unsigned fs_i_thresh:1; /* Intel iso scheduling */ 137 unsigned fs_i_thresh:1; /* Intel iso scheduling */
136 unsigned use_dummy_qh:1; /* AMD Frame List table quirk*/ 138 unsigned use_dummy_qh:1; /* AMD Frame List table quirk*/
139 unsigned has_synopsys_hc_bug:1; /* Synopsys HC */
137 140
138 /* required for usb32 quirk */ 141 /* required for usb32 quirk */
139 #define OHCI_CTRL_HCFS (3 << 6) 142 #define OHCI_CTRL_HCFS (3 << 6)
@@ -160,6 +163,10 @@ struct ehci_hcd { /* one per controller */
160#ifdef DEBUG 163#ifdef DEBUG
161 struct dentry *debug_dir; 164 struct dentry *debug_dir;
162#endif 165#endif
166 /*
167 * OTG controllers and transceivers need software interaction
168 */
169 struct otg_transceiver *transceiver;
163}; 170};
164 171
165/* convert between an HCD pointer and the corresponding EHCI_HCD */ 172/* convert between an HCD pointer and the corresponding EHCI_HCD */
@@ -600,12 +607,18 @@ ehci_port_speed(struct ehci_hcd *ehci, unsigned int portsc)
600 * This attempts to support either format at compile time without a 607 * This attempts to support either format at compile time without a
601 * runtime penalty, or both formats with the additional overhead 608 * runtime penalty, or both formats with the additional overhead
602 * of checking a flag bit. 609 * of checking a flag bit.
610 *
611 * ehci_big_endian_capbase is a special quirk for controllers that
612 * implement the HC capability registers as separate registers and not
613 * as fields of a 32-bit register.
603 */ 614 */
604 615
605#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO 616#ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO
606#define ehci_big_endian_mmio(e) ((e)->big_endian_mmio) 617#define ehci_big_endian_mmio(e) ((e)->big_endian_mmio)
618#define ehci_big_endian_capbase(e) ((e)->big_endian_capbase)
607#else 619#else
608#define ehci_big_endian_mmio(e) 0 620#define ehci_big_endian_mmio(e) 0
621#define ehci_big_endian_capbase(e) 0
609#endif 622#endif
610 623
611/* 624/*