summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Cheng <jacheng@nvidia.com>2010-10-27 11:45:19 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:36:34 -0800
commite849e2c1de2e3a2882b6a35c3b658e15b46d7a86 (patch)
tree22fd38ffd33574cdd1375970dbe66d08b79babc7
parentedb8ab793c7a9f27fe9947d18a7c845ae018e69e (diff)
usb: host: ehci: Add missed memory barrier in the hcd driver
There is one wmb missing in the usb host controller driver after the queue head update. Due to this data transaction is not happening on the bus after urb submission by the hcd driver. Register updates/queue heads data in the memory is not reflected on the AHB bus. After adding the wmb after queue head update data transaction the USB bus started with out any delay. originally fixed by Venkat Moganty <vmoganty@nvidia.com> Change-Id: Ic834df5172ac2f2eb3bced317d38b4a2e7a44801 Signed-off-by: Jay Cheng <jacheng@nvidia.com>
-rw-r--r--drivers/usb/host/ehci-q.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
index 0917e3a32465..bd7ffe00fb62 100644
--- a/drivers/usb/host/ehci-q.c
+++ b/drivers/usb/host/ehci-q.c
@@ -998,6 +998,7 @@ static void qh_link_async (struct ehci_hcd *ehci, struct ehci_qh *qh)
qh_get(qh);
qh->xacterrs = 0;
qh->qh_state = QH_STATE_LINKED;
+ wmb();
/* qtd completions reported later by interrupt */
}