summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2016-03-11 10:49:50 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2016-03-11 10:49:50 +0100
commit034d4ddcb6dfc7f72cb5076807e93a7bb7e4636b (patch)
treea8912608d1b8f1614e58c94f67e0b9f1801018e6 /drivers/usb
parent7991fe1b8eb057c6d7acc5c91f10108c1ee10a52 (diff)
parent092479d7da288479eb99362b4e852948b1de6de9 (diff)
downloadbarebox-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.c21
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) {