diff options
Diffstat (limited to 'drivers/usb/host/xhci.h')
-rw-r--r-- | drivers/usb/host/xhci.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h index ffe1625d4e1b..79ea627e8b8a 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h | |||
@@ -1058,6 +1058,8 @@ struct xhci_hcd { | |||
1058 | int noops_submitted; | 1058 | int noops_submitted; |
1059 | int noops_handled; | 1059 | int noops_handled; |
1060 | int error_bitmask; | 1060 | int error_bitmask; |
1061 | unsigned int quirks; | ||
1062 | #define XHCI_LINK_TRB_QUIRK (1 << 0) | ||
1061 | }; | 1063 | }; |
1062 | 1064 | ||
1063 | /* For testing purposes */ | 1065 | /* For testing purposes */ |
@@ -1136,6 +1138,13 @@ static inline void xhci_write_64(struct xhci_hcd *xhci, | |||
1136 | writel(val_hi, ptr + 1); | 1138 | writel(val_hi, ptr + 1); |
1137 | } | 1139 | } |
1138 | 1140 | ||
1141 | static inline int xhci_link_trb_quirk(struct xhci_hcd *xhci) | ||
1142 | { | ||
1143 | u32 temp = xhci_readl(xhci, &xhci->cap_regs->hc_capbase); | ||
1144 | return ((HC_VERSION(temp) == 0x95) && | ||
1145 | (xhci->quirks & XHCI_LINK_TRB_QUIRK)); | ||
1146 | } | ||
1147 | |||
1139 | /* xHCI debugging */ | 1148 | /* xHCI debugging */ |
1140 | void xhci_print_ir_set(struct xhci_hcd *xhci, struct xhci_intr_reg *ir_set, int set_num); | 1149 | void xhci_print_ir_set(struct xhci_hcd *xhci, struct xhci_intr_reg *ir_set, int set_num); |
1141 | void xhci_print_registers(struct xhci_hcd *xhci); | 1150 | void xhci_print_registers(struct xhci_hcd *xhci); |