[PATCH 1/3] Modified timeout in the ehci-hcd USB host driver.
Sascha Hauer
s.hauer at pengutronix.de
Fri Sep 23 02:57:44 EDT 2011
From: Rosen Kolev <rosen.kolev at amk-drives.bg>
Increased the asynchronous message timeout for bulk endpoints.
---
drivers/usb/host/ehci-hcd.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 60fc181..e092b8d 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -298,7 +298,7 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
uint32_t c, toggle;
uint32_t cmd;
int ret = 0;
- uint64_t start;
+ uint64_t start, timeout_val;
static struct QH __qh __attribute__((aligned(32)));
static struct qTD __td[3] __attribute__((aligned(32)));
@@ -415,13 +415,14 @@ ehci_submit_async(struct usb_device *dev, unsigned long pipe, void *buffer,
}
/* Wait for TDs to be processed. */
+ timeout_val = usb_pipebulk(pipe) ? (SECOND << 2) : (SECOND >> 2);
start = get_time_ns();
vtd = td;
do {
/* Invalidate dcache */
ehci_invalidate_dcache(ehci->qh_list);
token = hc32_to_cpu(vtd->qt_token);
- if (is_timeout(start, SECOND >> 2)) {
+ if (is_timeout(start, timeout_val)) {
/* Disable async schedule. */
cmd = ehci_readl(&ehci->hcor->or_usbcmd);
cmd &= ~CMD_ASE;
--
1.7.2.3
More information about the barebox
mailing list