diff options
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r-- | drivers/usb/host/ehci.h | 13 |
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 | /* |