Loading drivers/usb/gadget/net2272.c +19 −53 Original line number Diff line number Diff line Loading @@ -1172,17 +1172,18 @@ net2272_pullup(struct usb_gadget *_gadget, int is_on) return 0; } static int net2272_start(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *)); static int net2272_stop(struct usb_gadget_driver *driver); static int net2272_start(struct usb_gadget *_gadget, struct usb_gadget_driver *driver); static int net2272_stop(struct usb_gadget *_gadget, struct usb_gadget_driver *driver); static const struct usb_gadget_ops net2272_ops = { .get_frame = net2272_get_frame, .wakeup = net2272_wakeup, .set_selfpowered = net2272_set_selfpowered, .pullup = net2272_pullup, .start = net2272_start, .stop = net2272_stop, .udc_start = net2272_start, .udc_stop = net2272_stop, }; /*---------------------------------------------------------------------------*/ Loading Loading @@ -1356,8 +1357,6 @@ net2272_set_fifo_mode(struct net2272 *dev, int mode) /*---------------------------------------------------------------------------*/ static struct net2272 *the_controller; static void net2272_usb_reset(struct net2272 *dev) { Loading Loading @@ -1453,20 +1452,17 @@ net2272_ep0_start(struct net2272 *dev) * disconnect is reported. then a host may connect again, or * the driver might get unbound. */ static int net2272_start(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *)) static int net2272_start(struct usb_gadget *_gadget, struct usb_gadget_driver *driver) { struct net2272 *dev = the_controller; int ret; struct net2272 *dev; unsigned i; if (!driver || !bind || !driver->unbind || !driver->setup || if (!driver || !driver->unbind || !driver->setup || driver->speed != USB_SPEED_HIGH) return -EINVAL; if (!dev) return -ENODEV; if (dev->driver) return -EBUSY; dev = container_of(_gadget, struct net2272, gadget); for (i = 0; i < 4; ++i) dev->ep[i].irqs = 0; Loading @@ -1475,14 +1471,6 @@ static int net2272_start(struct usb_gadget_driver *driver, driver->driver.bus = NULL; dev->driver = driver; dev->gadget.dev.driver = &driver->driver; ret = bind(&dev->gadget); if (ret) { dev_dbg(dev->dev, "bind to driver %s --> %d\n", driver->driver.name, ret); dev->driver = NULL; dev->gadget.dev.driver = NULL; return ret; } /* ... then enable host detection and ep0; and we're ready * for set_configuration as well as eventual disconnect. Loading Loading @@ -1510,33 +1498,21 @@ 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); } static int net2272_stop(struct usb_gadget_driver *driver) static int net2272_stop(struct usb_gadget *_gadget, struct usb_gadget_driver *driver) { struct net2272 *dev = the_controller; struct net2272 *dev; unsigned long flags; if (!dev) return -ENODEV; if (!driver || driver != dev->driver) return -EINVAL; dev = container_of(_gadget, struct net2272, gadget); spin_lock_irqsave(&dev->lock, flags); stop_activity(dev, driver); spin_unlock_irqrestore(&dev->lock, flags); net2272_pullup(&dev->gadget, 0); driver->unbind(&dev->gadget); dev->gadget.dev.driver = NULL; dev->driver = NULL; Loading Loading @@ -2238,7 +2214,6 @@ net2272_remove(struct net2272 *dev) device_remove_file(dev->dev, &dev_attr_registers); dev_info(dev->dev, "unbind\n"); the_controller = NULL; } static struct net2272 * __devinit Loading @@ -2246,11 +2221,6 @@ net2272_probe_init(struct device *dev, unsigned int irq) { struct net2272 *ret; if (the_controller) { dev_warn(dev, "ignoring\n"); return ERR_PTR(-EBUSY); } if (!irq) { dev_dbg(dev, "No IRQ!\n"); return ERR_PTR(-ENODEV); Loading Loading @@ -2307,8 +2277,6 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags) dma_mode_string()); dev_info(dev->dev, "version: %s\n", driver_vers); the_controller = dev; ret = device_register(&dev->gadget.dev); if (ret) goto err_irq; Loading Loading @@ -2684,8 +2652,6 @@ net2272_plat_probe(struct platform_device *pdev) dev_info(&pdev->dev, "running in 16-bit, %sbyte swap local bus mode\n", (net2272_read(dev, LOCCTL) & (1 << BYTE_SWAP)) ? "" : "no "); the_controller = dev; return 0; err_io: Loading Loading
drivers/usb/gadget/net2272.c +19 −53 Original line number Diff line number Diff line Loading @@ -1172,17 +1172,18 @@ net2272_pullup(struct usb_gadget *_gadget, int is_on) return 0; } static int net2272_start(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *)); static int net2272_stop(struct usb_gadget_driver *driver); static int net2272_start(struct usb_gadget *_gadget, struct usb_gadget_driver *driver); static int net2272_stop(struct usb_gadget *_gadget, struct usb_gadget_driver *driver); static const struct usb_gadget_ops net2272_ops = { .get_frame = net2272_get_frame, .wakeup = net2272_wakeup, .set_selfpowered = net2272_set_selfpowered, .pullup = net2272_pullup, .start = net2272_start, .stop = net2272_stop, .udc_start = net2272_start, .udc_stop = net2272_stop, }; /*---------------------------------------------------------------------------*/ Loading Loading @@ -1356,8 +1357,6 @@ net2272_set_fifo_mode(struct net2272 *dev, int mode) /*---------------------------------------------------------------------------*/ static struct net2272 *the_controller; static void net2272_usb_reset(struct net2272 *dev) { Loading Loading @@ -1453,20 +1452,17 @@ net2272_ep0_start(struct net2272 *dev) * disconnect is reported. then a host may connect again, or * the driver might get unbound. */ static int net2272_start(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *)) static int net2272_start(struct usb_gadget *_gadget, struct usb_gadget_driver *driver) { struct net2272 *dev = the_controller; int ret; struct net2272 *dev; unsigned i; if (!driver || !bind || !driver->unbind || !driver->setup || if (!driver || !driver->unbind || !driver->setup || driver->speed != USB_SPEED_HIGH) return -EINVAL; if (!dev) return -ENODEV; if (dev->driver) return -EBUSY; dev = container_of(_gadget, struct net2272, gadget); for (i = 0; i < 4; ++i) dev->ep[i].irqs = 0; Loading @@ -1475,14 +1471,6 @@ static int net2272_start(struct usb_gadget_driver *driver, driver->driver.bus = NULL; dev->driver = driver; dev->gadget.dev.driver = &driver->driver; ret = bind(&dev->gadget); if (ret) { dev_dbg(dev->dev, "bind to driver %s --> %d\n", driver->driver.name, ret); dev->driver = NULL; dev->gadget.dev.driver = NULL; return ret; } /* ... then enable host detection and ep0; and we're ready * for set_configuration as well as eventual disconnect. Loading Loading @@ -1510,33 +1498,21 @@ 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); } static int net2272_stop(struct usb_gadget_driver *driver) static int net2272_stop(struct usb_gadget *_gadget, struct usb_gadget_driver *driver) { struct net2272 *dev = the_controller; struct net2272 *dev; unsigned long flags; if (!dev) return -ENODEV; if (!driver || driver != dev->driver) return -EINVAL; dev = container_of(_gadget, struct net2272, gadget); spin_lock_irqsave(&dev->lock, flags); stop_activity(dev, driver); spin_unlock_irqrestore(&dev->lock, flags); net2272_pullup(&dev->gadget, 0); driver->unbind(&dev->gadget); dev->gadget.dev.driver = NULL; dev->driver = NULL; Loading Loading @@ -2238,7 +2214,6 @@ net2272_remove(struct net2272 *dev) device_remove_file(dev->dev, &dev_attr_registers); dev_info(dev->dev, "unbind\n"); the_controller = NULL; } static struct net2272 * __devinit Loading @@ -2246,11 +2221,6 @@ net2272_probe_init(struct device *dev, unsigned int irq) { struct net2272 *ret; if (the_controller) { dev_warn(dev, "ignoring\n"); return ERR_PTR(-EBUSY); } if (!irq) { dev_dbg(dev, "No IRQ!\n"); return ERR_PTR(-ENODEV); Loading Loading @@ -2307,8 +2277,6 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags) dma_mode_string()); dev_info(dev->dev, "version: %s\n", driver_vers); the_controller = dev; ret = device_register(&dev->gadget.dev); if (ret) goto err_irq; Loading Loading @@ -2684,8 +2652,6 @@ net2272_plat_probe(struct platform_device *pdev) dev_info(&pdev->dev, "running in 16-bit, %sbyte swap local bus mode\n", (net2272_read(dev, LOCCTL) & (1 << BYTE_SWAP)) ? "" : "no "); the_controller = dev; return 0; err_io: Loading