diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2015-10-14 15:37:34 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-10-14 15:38:00 +0200 |
commit | 8f92eb2666fd8afd3d117a941114f59dddc3876e (patch) | |
tree | 5480309fd2660c243b03fdcb0643d576adcd4617 /drivers/usb/host/ehci-hcd.c | |
parent | 180370774f1a812f0f0ec33e10b3bd89770cdb57 (diff) | |
download | barebox-8f92eb2666fd8afd3d117a941114f59dddc3876e.tar.gz barebox-8f92eb2666fd8afd3d117a941114f59dddc3876e.tar.xz |
Revert "usb: ehci-hcd: detect re-entrance"
Now that the USB core makes sure that we do not re-enter USB
drivers we no longer have to detect re-entrancy in the ehci driver.
This reverts commit 8426cc641dbd9c4e948ae4b5f3f89463e969eb1e.
Diffstat (limited to 'drivers/usb/host/ehci-hcd.c')
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 42 |
1 files changed, 4 insertions, 38 deletions
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 975a49c2e9..303c6d86aa 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -51,8 +51,6 @@ struct ehci_priv { int periodic_schedules; struct QH *periodic_queue; uint32_t *periodic_list; - int sem; - struct device_d *usedby; }; struct int_queue { @@ -138,20 +136,6 @@ static struct descriptor { #define ehci_is_TDI() (ehci->flags & EHCI_HAS_TT) -static void inline ehci_reentrance_detect(struct ehci_priv *ehci, - struct usb_device *dev, - const char *fname) -{ - if (ehci->sem) - dev_err(&dev->dev, "%s: re-entrance %d (%s:%s)\n", - fname, - ehci->sem, - ehci->usedby->driver->name, - ehci->usedby->name); - ehci->sem++; - ehci->usedby = &dev->dev; -} - static int handshake(uint32_t *ptr, uint32_t mask, uint32_t done, int usec) { uint32_t result; @@ -904,18 +888,12 @@ submit_bulk_msg(struct usb_device *dev, unsigned long pipe, void *buffer, { struct usb_host *host = dev->host; struct ehci_priv *ehci = to_ehci(host); - int ret; - - ehci_reentrance_detect(ehci, dev, __func__); if (usb_pipetype(pipe) != PIPE_BULK) { dev_dbg(ehci->dev, "non-bulk pipe (type=%lu)", usb_pipetype(pipe)); - ehci->sem--; return -1; } - ret = ehci_submit_async(dev, pipe, buffer, length, NULL); - ehci->sem--; - return ret; + return ehci_submit_async(dev, pipe, buffer, length, NULL); } static int @@ -924,9 +902,6 @@ submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer, { struct usb_host *host = dev->host; struct ehci_priv *ehci = to_ehci(host); - int ret; - - ehci_reentrance_detect(ehci, dev, __func__); if (usb_pipetype(pipe) != PIPE_CONTROL) { dev_dbg(ehci->dev, "non-control pipe (type=%lu)", usb_pipetype(pipe)); @@ -936,13 +911,9 @@ submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer, if (usb_pipedevice(pipe) == ehci->rootdev) { if (ehci->rootdev == 0) dev->speed = USB_SPEED_HIGH; - ret = ehci_submit_root(dev, pipe, buffer, length, setup); - ehci->sem--; - return ret; + return ehci_submit_root(dev, pipe, buffer, length, setup); } - ret = ehci_submit_async(dev, pipe, buffer, length, setup); - ehci->sem--; - return ret; + return ehci_submit_async(dev, pipe, buffer, length, setup); } static int @@ -1265,8 +1236,6 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, void *backbuffer; int result = 0, ret; - ehci_reentrance_detect(ehci, dev, __func__); - dev_dbg(ehci->dev, "dev=%p, pipe=%lu, buffer=%p, length=%d, interval=%d", dev, pipe, buffer, length, interval); @@ -1274,10 +1243,8 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, DMA_BIDIRECTIONAL); queue = ehci_create_int_queue(dev, pipe, 1, length, buffer, interval); - if (!queue) { - ehci->sem--; + if (!queue) return -EINVAL; - } start = get_time_ns(); while ((backbuffer = ehci_poll_int_queue(dev, queue)) == NULL) @@ -1303,7 +1270,6 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, ret = ehci_destroy_int_queue(dev, queue); if (!result) result = ret; - ehci->sem--; return result; } |