diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2016-03-11 10:49:50 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-03-11 10:49:50 +0100 |
commit | 034d4ddcb6dfc7f72cb5076807e93a7bb7e4636b (patch) | |
tree | a8912608d1b8f1614e58c94f67e0b9f1801018e6 /drivers/usb | |
parent | 7991fe1b8eb057c6d7acc5c91f10108c1ee10a52 (diff) | |
parent | 092479d7da288479eb99362b4e852948b1de6de9 (diff) | |
download | barebox-034d4ddcb6dfc7f72cb5076807e93a7bb7e4636b.tar.gz barebox-034d4ddcb6dfc7f72cb5076807e93a7bb7e4636b.tar.xz |
Merge branch 'for-next/misc'
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 8ea26e3591..b0bf9225ec 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -1005,7 +1005,7 @@ static struct int_queue *ehci_create_int_queue(struct usb_device *dev, struct usb_host *host = dev->host; struct ehci_priv *ehci = to_ehci(host); struct int_queue *result = NULL; - uint32_t i, toggle; + uint32_t i; struct QH *list = ehci->periodic_queue; /* @@ -1057,8 +1057,6 @@ static struct int_queue *ehci_create_int_queue(struct usb_device *dev, memset(result->first, 0, sizeof(struct QH) * queuesize); memset(result->tds, 0, sizeof(struct qTD) * queuesize); - toggle = usb_gettoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe)); - for (i = 0; i < queuesize; i++) { struct QH *qh = result->first + i; struct qTD *td = result->tds + i; @@ -1073,7 +1071,6 @@ static struct int_queue *ehci_create_int_queue(struct usb_device *dev, qh->qh_endpt1 = cpu_to_hc32((0 << 28) | /* No NAK reload (ehci 4.9) */ (usb_maxpacket(dev, pipe) << 16) | /* MPS */ - (1 << 14) | QH_ENDPT1_EPS(ehci_encode_speed(dev->speed)) | (usb_pipeendpoint(pipe) << 8) | /* Endpoint Number */ (usb_pipedevice(pipe) << 0)); @@ -1092,7 +1089,6 @@ static struct int_queue *ehci_create_int_queue(struct usb_device *dev, "communication direction is '%s'\n", usb_pipein(pipe) ? "in" : "out"); td->qt_token = cpu_to_hc32( - QT_TOKEN_DT(toggle) | (elementsize << 16) | ((usb_pipein(pipe) ? 1 : 0) << 8) | /* IN/OUT token */ 0x80); /* active */ @@ -1108,7 +1104,6 @@ static struct int_queue *ehci_create_int_queue(struct usb_device *dev, cpu_to_hc32((td->qt_buffer[0] + 0x4000) & ~0xfff); *buf = buffer + i * elementsize; - toggle ^= 1; } if (ehci->periodic_schedules > 0) { @@ -1144,8 +1139,7 @@ static void *ehci_poll_int_queue(struct usb_device *dev, { struct QH *cur = queue->current; struct qTD *cur_td; - uint32_t token, toggle; - unsigned long pipe = queue->pipe; + uint32_t token; /* depleted queue */ if (cur == NULL) { @@ -1162,9 +1156,6 @@ static void *ehci_poll_int_queue(struct usb_device *dev, return NULL; } - toggle = QT_TOKEN_GET_DT(token); - usb_settoggle(dev, usb_pipeendpoint(pipe), usb_pipeout(pipe), toggle); - if (!(cur->qh_link & QH_LINK_TERMINATE)) queue->current++; else @@ -1183,7 +1174,6 @@ static int ehci_destroy_int_queue(struct usb_device *dev, struct usb_host *host = dev->host; struct ehci_priv *ehci = to_ehci(host); struct QH *cur = ehci->periodic_queue; - uint64_t start; if (disable_periodic(ehci) < 0) { dev_err(&dev->dev, @@ -1192,7 +1182,6 @@ static int ehci_destroy_int_queue(struct usb_device *dev, } ehci->periodic_schedules--; - start = get_time_ns(); while (!(cur->qh_link & cpu_to_hc32(QH_LINK_TERMINATE))) { dev_dbg(&dev->dev, "considering %p, with qh_link %x\n", @@ -1205,12 +1194,6 @@ static int ehci_destroy_int_queue(struct usb_device *dev, break; } cur = NEXT_QH(cur); - if (is_timeout_non_interruptible(start, 500 * MSECOND)) { - dev_err(&dev->dev, - "Timeout destroying interrupt endpoint queue\n"); - result = -ETIMEDOUT; - goto out; - } } if (ehci->periodic_schedules > 0) { |