aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/xhci.h')
-rw-r--r--drivers/usb/host/xhci.h9
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
1141static 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 */
1140void xhci_print_ir_set(struct xhci_hcd *xhci, struct xhci_intr_reg *ir_set, int set_num); 1149void xhci_print_ir_set(struct xhci_hcd *xhci, struct xhci_intr_reg *ir_set, int set_num);
1141void xhci_print_registers(struct xhci_hcd *xhci); 1150void xhci_print_registers(struct xhci_hcd *xhci);