aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-12-09 06:42:48 -0500
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2013-12-13 15:04:52 -0500
commit4e6a1ee72b74ce013f0b31063915a58ba7db2f88 (patch)
tree2d7e2bb9f04b87e060664ee9af6cdb28fd1b477b /drivers/usb/host/xhci.c
parent3d724fa513cd1bd06d3457ccda36941f3606d048 (diff)
xhci: Add quirks module option
It makes easier for debugging some hardware specific issues. Note that this option won't override the value to be set. That is, you can turn quirks on by this option but cannot turn them off if set by the driver. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Diffstat (limited to 'drivers/usb/host/xhci.c')
-rw-r--r--drivers/usb/host/xhci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index d68ec1aa473d..6bc966cfb60e 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -40,6 +40,10 @@ static int link_quirk;
40module_param(link_quirk, int, S_IRUGO | S_IWUSR); 40module_param(link_quirk, int, S_IRUGO | S_IWUSR);
41MODULE_PARM_DESC(link_quirk, "Don't clear the chain bit on a link TRB"); 41MODULE_PARM_DESC(link_quirk, "Don't clear the chain bit on a link TRB");
42 42
43static unsigned int quirks;
44module_param(quirks, uint, S_IRUGO);
45MODULE_PARM_DESC(quirks, "Bit flags for quirks to be enabled as default");
46
43/* TODO: copied from ehci-hcd.c - can this be refactored? */ 47/* TODO: copied from ehci-hcd.c - can this be refactored? */
44/* 48/*
45 * xhci_handshake - spin reading hc until handshake completes or fails 49 * xhci_handshake - spin reading hc until handshake completes or fails
@@ -4770,6 +4774,8 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
4770 xhci->hcc_params = readl(&xhci->cap_regs->hcc_params); 4774 xhci->hcc_params = readl(&xhci->cap_regs->hcc_params);
4771 xhci_print_registers(xhci); 4775 xhci_print_registers(xhci);
4772 4776
4777 xhci->quirks = quirks;
4778
4773 get_quirks(dev, xhci); 4779 get_quirks(dev, xhci);
4774 4780
4775 /* In xhci controllers which follow xhci 1.0 spec gives a spurious 4781 /* In xhci controllers which follow xhci 1.0 spec gives a spurious