diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/usb/host/ehci.h | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r-- | drivers/usb/host/ehci.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index bde823f704e9..bd6ff489baf9 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h | |||
@@ -73,6 +73,7 @@ struct ehci_hcd { /* one per controller */ | |||
73 | 73 | ||
74 | /* async schedule support */ | 74 | /* async schedule support */ |
75 | struct ehci_qh *async; | 75 | struct ehci_qh *async; |
76 | struct ehci_qh *dummy; /* For AMD quirk use */ | ||
76 | struct ehci_qh *reclaim; | 77 | struct ehci_qh *reclaim; |
77 | unsigned scanning : 1; | 78 | unsigned scanning : 1; |
78 | 79 | ||
@@ -117,6 +118,7 @@ struct ehci_hcd { /* one per controller */ | |||
117 | struct timer_list watchdog; | 118 | struct timer_list watchdog; |
118 | unsigned long actions; | 119 | unsigned long actions; |
119 | unsigned stamp; | 120 | unsigned stamp; |
121 | unsigned periodic_stamp; | ||
120 | unsigned random_frame; | 122 | unsigned random_frame; |
121 | unsigned long next_statechange; | 123 | unsigned long next_statechange; |
122 | ktime_t last_periodic_enable; | 124 | ktime_t last_periodic_enable; |
@@ -127,10 +129,14 @@ struct ehci_hcd { /* one per controller */ | |||
127 | unsigned has_fsl_port_bug:1; /* FreeScale */ | 129 | unsigned has_fsl_port_bug:1; /* FreeScale */ |
128 | unsigned big_endian_mmio:1; | 130 | unsigned big_endian_mmio:1; |
129 | unsigned big_endian_desc:1; | 131 | unsigned big_endian_desc:1; |
132 | unsigned big_endian_capbase:1; | ||
130 | unsigned has_amcc_usb23:1; | 133 | unsigned has_amcc_usb23:1; |
131 | unsigned need_io_watchdog:1; | 134 | unsigned need_io_watchdog:1; |
132 | unsigned broken_periodic:1; | 135 | unsigned broken_periodic:1; |
136 | unsigned amd_pll_fix:1; | ||
133 | unsigned fs_i_thresh:1; /* Intel iso scheduling */ | 137 | unsigned fs_i_thresh:1; /* Intel iso scheduling */ |
138 | unsigned use_dummy_qh:1; /* AMD Frame List table quirk*/ | ||
139 | unsigned has_synopsys_hc_bug:1; /* Synopsys HC */ | ||
134 | 140 | ||
135 | /* required for usb32 quirk */ | 141 | /* required for usb32 quirk */ |
136 | #define OHCI_CTRL_HCFS (3 << 6) | 142 | #define OHCI_CTRL_HCFS (3 << 6) |
@@ -157,6 +163,10 @@ struct ehci_hcd { /* one per controller */ | |||
157 | #ifdef DEBUG | 163 | #ifdef DEBUG |
158 | struct dentry *debug_dir; | 164 | struct dentry *debug_dir; |
159 | #endif | 165 | #endif |
166 | /* | ||
167 | * OTG controllers and transceivers need software interaction | ||
168 | */ | ||
169 | struct otg_transceiver *transceiver; | ||
160 | }; | 170 | }; |
161 | 171 | ||
162 | /* convert between an HCD pointer and the corresponding EHCI_HCD */ | 172 | /* convert between an HCD pointer and the corresponding EHCI_HCD */ |
@@ -597,12 +607,18 @@ ehci_port_speed(struct ehci_hcd *ehci, unsigned int portsc) | |||
597 | * This attempts to support either format at compile time without a | 607 | * This attempts to support either format at compile time without a |
598 | * runtime penalty, or both formats with the additional overhead | 608 | * runtime penalty, or both formats with the additional overhead |
599 | * 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. | ||
600 | */ | 614 | */ |
601 | 615 | ||
602 | #ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO | 616 | #ifdef CONFIG_USB_EHCI_BIG_ENDIAN_MMIO |
603 | #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) | ||
604 | #else | 619 | #else |
605 | #define ehci_big_endian_mmio(e) 0 | 620 | #define ehci_big_endian_mmio(e) 0 |
621 | #define ehci_big_endian_capbase(e) 0 | ||
606 | #endif | 622 | #endif |
607 | 623 | ||
608 | /* | 624 | /* |
@@ -641,7 +657,7 @@ static inline void ehci_writel(const struct ehci_hcd *ehci, | |||
641 | /* | 657 | /* |
642 | * On certain ppc-44x SoC there is a HW issue, that could only worked around with | 658 | * On certain ppc-44x SoC there is a HW issue, that could only worked around with |
643 | * explicit suspend/operate of OHCI. This function hereby makes sense only on that arch. | 659 | * explicit suspend/operate of OHCI. This function hereby makes sense only on that arch. |
644 | * Other common bits are dependant on has_amcc_usb23 quirk flag. | 660 | * Other common bits are dependent on has_amcc_usb23 quirk flag. |
645 | */ | 661 | */ |
646 | #ifdef CONFIG_44x | 662 | #ifdef CONFIG_44x |
647 | static inline void set_ohci_hcfs(struct ehci_hcd *ehci, int operational) | 663 | static inline void set_ohci_hcfs(struct ehci_hcd *ehci, int operational) |