summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAzhar Shaikh <azhars@codeaurora.org>2015-11-20 12:01:35 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:22:01 -0700
commit9c8cd50d9d7b2aea8a34625a020e1b9f071c5a53 (patch)
tree0ad2a3726bc41e1db1922a520836d8329348e813 /drivers/usb
parent82b8bbead99a4e476ff7d11c360b8d87fd88ff49 (diff)
usb: xhci: Set interrupt moderation for host mode to 4000(1ms)
Higher value allows xhci core to moderate interrupts resulting in fewer interrupts from xhci core. This results in lower CPU utilization during peak throughput scenarios. Change-Id: I69548fd9a1adff1b8eafee40c0f92639efd93b2e Signed-off-by: Devdutt Patnaik <dpatnaik@codeaurora.org> Signed-off-by: Azhar Shaikh <azhars@codeaurora.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 776d59c32bc5..b9577ebbb2b1 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -35,6 +35,8 @@
#define DRIVER_AUTHOR "Sarah Sharp"
#define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver"
+#define XHCI_INT_MODERATION_VAL 4000
+
#define PORT_WAKE_BITS (PORT_WKOC_E | PORT_WKDISC_E | PORT_WKCONN_E)
/* Some 0.95 hardware can't handle the chain bit on a Link TRB being cleared */
@@ -634,7 +636,7 @@ int xhci_run(struct usb_hcd *hcd)
"// Set the interrupt modulation register");
temp = readl(&xhci->ir_set->irq_control);
temp &= ~ER_IRQ_INTERVAL_MASK;
- temp |= (u32) 160;
+ temp |= (u32) XHCI_INT_MODERATION_VAL;
writel(temp, &xhci->ir_set->irq_control);
/* Set the HCD state before we enable the irqs */