]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
usb: gadget: net22xx: fix ->disconnect reporting
authorFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 08:14:47 +0000 (10:14 +0200)
committerFelipe Balbi <balbi@ti.com>
Wed, 20 Mar 2013 14:46:28 +0000 (16:46 +0200)
with the latest udc_start/udc_stop conversion,
too much code was deleted which ended up creating
a regression in net2272 and net2280 drivers.

To fix the regression we revert one hunk of the
original commits.

Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/net2272.c
drivers/usb/gadget/net2280.c

index d226058e3b88ab7a3f6d07783886d8f23e8b7365..17628337c6b07cd81b1bce13414283c238a7167f 100644 (file)
@@ -1495,6 +1495,13 @@ stop_activity(struct net2272 *dev, struct usb_gadget_driver *driver)
        for (i = 0; i < 4; ++i)
                net2272_dequeue_all(&dev->ep[i]);
 
+       /* report disconnect; the driver is already quiesced */
+       if (driver) {
+               spin_unlock(&dev->lock);
+               driver->disconnect(&dev->gadget);
+               spin_lock(&dev->lock);
+       }
+
        net2272_usb_reinit(dev);
 }
 
index a1b650e11339797ca9a17ca41e6de5cd8ab07ca2..3105a4d601c85a25870d073523d05fa228a765ce 100644 (file)
@@ -1946,6 +1946,13 @@ stop_activity (struct net2280 *dev, struct usb_gadget_driver *driver)
        for (i = 0; i < 7; i++)
                nuke (&dev->ep [i]);
 
+       /* report disconnect; the driver is already quiesced */
+       if (driver) {
+               spin_unlock(&dev->lock);
+               driver->disconnect(&dev->gadget);
+               spin_lock(&dev->lock);
+       }
+
        usb_reinit (dev);
 }