Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 44785
b: refs/heads/master
c: 6bea476
h: refs/heads/master
i:
  44783: 0a42fb0
v: v3
  • Loading branch information
David Brownell authored and Greg Kroah-Hartman committed Dec 20, 2006
1 parent bdc6996 commit f4abc95
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 48 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5f8364b7d63acdc2216ca0f7d0a8557c318479ea
refs/heads/master: 6bea476cf628eb7bb18a036ac6a8fed1ad319951
9 changes: 4 additions & 5 deletions trunk/drivers/usb/gadget/at91_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1574,7 +1574,6 @@ int usb_gadget_register_driver (struct usb_gadget_driver *driver)
if (!driver
|| driver->speed != USB_SPEED_FULL
|| !driver->bind
|| !driver->unbind
|| !driver->setup) {
DBG("bad parameter.\n");
return -EINVAL;
Expand Down Expand Up @@ -1611,7 +1610,7 @@ int usb_gadget_unregister_driver (struct usb_gadget_driver *driver)
{
struct at91_udc *udc = &controller;

if (!driver || driver != udc->driver)
if (!driver || driver != udc->driver || !driver->unbind)
return -EINVAL;

local_irq_disable();
Expand Down Expand Up @@ -1731,10 +1730,10 @@ static int __devexit at91udc_remove(struct platform_device *pdev)

DBG("remove\n");

pullup(udc, 0);
if (udc->driver)
return -EBUSY;

if (udc->driver != 0)
usb_gadget_unregister_driver(udc->driver);
pullup(udc, 0);

device_init_wakeup(&pdev->dev, 0);
remove_debug_file(udc);
Expand Down
7 changes: 4 additions & 3 deletions trunk/drivers/usb/gadget/dummy_hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,7 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver)
return -EINVAL;
if (dum->driver)
return -EBUSY;
if (!driver->bind || !driver->unbind || !driver->setup
if (!driver->bind || !driver->setup
|| driver->speed == USB_SPEED_UNKNOWN)
return -EINVAL;

Expand Down Expand Up @@ -837,7 +837,8 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver)
err_bind_driver:
driver_unregister (&driver->driver);
err_register:
driver->unbind (&dum->gadget);
if (driver->unbind)
driver->unbind (&dum->gadget);
spin_lock_irq (&dum->lock);
dum->pullup = 0;
set_link_state (dum);
Expand All @@ -857,7 +858,7 @@ usb_gadget_unregister_driver (struct usb_gadget_driver *driver)

if (!dum)
return -ENODEV;
if (!driver || driver != dum->driver)
if (!driver || driver != dum->driver || !driver->unbind)
return -EINVAL;

dev_dbg (udc_dev(dum), "unregister gadget driver '%s'\n",
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/usb/gadget/file_storage.c
Original file line number Diff line number Diff line change
Expand Up @@ -4100,7 +4100,7 @@ static struct usb_gadget_driver fsg_driver = {
#endif
.function = (char *) longname,
.bind = fsg_bind,
.unbind = __exit_p(fsg_unbind),
.unbind = fsg_unbind,
.disconnect = fsg_disconnect,
.setup = fsg_setup,
.suspend = fsg_suspend,
Expand Down
12 changes: 6 additions & 6 deletions trunk/drivers/usb/gadget/gmidi.c
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ struct gmidi_device {
struct usb_request *req; /* for control responses */
u8 config;
struct usb_ep *in_ep, *out_ep;
struct snd_card *card;
struct snd_card *card;
struct snd_rawmidi *rmidi;
struct snd_rawmidi_substream *in_substream;
struct snd_rawmidi_substream *out_substream;
Expand Down Expand Up @@ -490,7 +490,7 @@ static void gmidi_complete(struct usb_ep *ep, struct usb_request *req)
int status = req->status;

switch (status) {
case 0: /* normal completion */
case 0: /* normal completion */
if (ep == dev->out_ep) {
/* we received stuff.
req is queued again, below */
Expand All @@ -505,7 +505,7 @@ static void gmidi_complete(struct usb_ep *ep, struct usb_request *req)
break;

/* this endpoint is normally active while we're configured */
case -ECONNABORTED: /* hardware forced ep reset */
case -ECONNABORTED: /* hardware forced ep reset */
case -ECONNRESET: /* request dequeued */
case -ESHUTDOWN: /* disconnect from host */
VDBG(dev, "%s gone (%d), %d/%d\n", ep->name, status,
Expand Down Expand Up @@ -656,7 +656,7 @@ gmidi_set_config(struct gmidi_device *dev, unsigned number, gfp_t gfp_flags)
case USB_SPEED_LOW: speed = "low"; break;
case USB_SPEED_FULL: speed = "full"; break;
case USB_SPEED_HIGH: speed = "high"; break;
default: speed = "?"; break;
default: speed = "?"; break;
}

dev->config = number;
Expand Down Expand Up @@ -1308,15 +1308,15 @@ static struct usb_gadget_driver gmidi_driver = {
.speed = USB_SPEED_FULL,
.function = (char *)longname,
.bind = gmidi_bind,
.unbind = __exit_p(gmidi_unbind),
.unbind = gmidi_unbind,

.setup = gmidi_setup,
.disconnect = gmidi_disconnect,

.suspend = gmidi_suspend,
.resume = gmidi_resume,

.driver = {
.driver = {
.name = (char *)shortname,
.owner = THIS_MODULE,
},
Expand Down
12 changes: 3 additions & 9 deletions trunk/drivers/usb/gadget/goku_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
if (!driver
|| driver->speed != USB_SPEED_FULL
|| !driver->bind
|| !driver->unbind
|| !driver->disconnect
|| !driver->setup)
return -EINVAL;
Expand Down Expand Up @@ -1495,7 +1494,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)

if (!dev)
return -ENODEV;
if (!driver || driver != dev->driver)
if (!driver || driver != dev->driver || !driver->unbind)
return -EINVAL;

spin_lock_irqsave(&dev->lock, flags);
Expand Down Expand Up @@ -1808,13 +1807,8 @@ static void goku_remove(struct pci_dev *pdev)
struct goku_udc *dev = pci_get_drvdata(pdev);

DBG(dev, "%s\n", __FUNCTION__);
/* start with the driver above us */
if (dev->driver) {
/* should have been done already by driver model core */
WARN(dev, "pci remove, driver '%s' is still registered\n",
dev->driver->driver.name);
usb_gadget_unregister_driver(dev->driver);
}

BUG_ON(dev->driver);

#ifdef CONFIG_USB_GADGET_DEBUG_FILES
remove_proc_entry(proc_node_name, NULL);
Expand Down
13 changes: 8 additions & 5 deletions trunk/drivers/usb/gadget/lh7a40x_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -422,9 +422,10 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
DEBUG("%s: %s\n", __FUNCTION__, driver->driver.name);

if (!driver
|| driver->speed != USB_SPEED_FULL
|| !driver->bind
|| !driver->unbind || !driver->disconnect || !driver->setup)
|| driver->speed != USB_SPEED_FULL
|| !driver->bind
|| !driver->disconnect
|| !driver->setup)
return -EINVAL;
if (!dev)
return -ENODEV;
Expand Down Expand Up @@ -471,7 +472,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)

if (!dev)
return -ENODEV;
if (!driver || driver != dev->driver)
if (!driver || driver != dev->driver || !driver->unbind)
return -EINVAL;

spin_lock_irqsave(&dev->lock, flags);
Expand Down Expand Up @@ -2125,9 +2126,11 @@ static int lh7a40x_udc_remove(struct platform_device *pdev)

DEBUG("%s: %p\n", __FUNCTION__, pdev);

if (dev->driver)
return -EBUSY;

udc_disable(dev);
remove_proc_files();
usb_gadget_unregister_driver(dev->driver);

free_irq(IRQ_USBINTR, dev);

Expand Down
11 changes: 2 additions & 9 deletions trunk/drivers/usb/gadget/net2280.c
Original file line number Diff line number Diff line change
Expand Up @@ -2020,7 +2020,6 @@ int usb_gadget_register_driver (struct usb_gadget_driver *driver)
if (!driver
|| driver->speed != USB_SPEED_HIGH
|| !driver->bind
|| !driver->unbind
|| !driver->setup)
return -EINVAL;
if (!dev)
Expand Down Expand Up @@ -2107,7 +2106,7 @@ int usb_gadget_unregister_driver (struct usb_gadget_driver *driver)

if (!dev)
return -ENODEV;
if (!driver || driver != dev->driver)
if (!driver || driver != dev->driver || !driver->unbind)
return -EINVAL;

spin_lock_irqsave (&dev->lock, flags);
Expand Down Expand Up @@ -2803,13 +2802,7 @@ static void net2280_remove (struct pci_dev *pdev)
{
struct net2280 *dev = pci_get_drvdata (pdev);

/* start with the driver above us */
if (dev->driver) {
/* should have been done already by driver model core */
WARN (dev, "pci remove, driver '%s' is still registered\n",
dev->driver->driver.name);
usb_gadget_unregister_driver (dev->driver);
}
BUG_ON(dev->driver);

/* then clean up the resources we allocated during probe() */
net2280_led_shutdown (dev);
Expand Down
13 changes: 8 additions & 5 deletions trunk/drivers/usb/gadget/omap_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2043,7 +2043,6 @@ int usb_gadget_register_driver (struct usb_gadget_driver *driver)
// FIXME if otg, check: driver->is_otg
|| driver->speed < USB_SPEED_FULL
|| !driver->bind
|| !driver->unbind
|| !driver->setup)
return -EINVAL;

Expand Down Expand Up @@ -2087,9 +2086,11 @@ int usb_gadget_register_driver (struct usb_gadget_driver *driver)
status = otg_set_peripheral(udc->transceiver, &udc->gadget);
if (status < 0) {
ERR("can't bind to transceiver\n");
driver->unbind (&udc->gadget);
udc->gadget.dev.driver = NULL;
udc->driver = NULL;
if (driver->unbind) {
driver->unbind (&udc->gadget);
udc->gadget.dev.driver = NULL;
udc->driver = NULL;
}
goto done;
}
} else {
Expand Down Expand Up @@ -2117,7 +2118,7 @@ int usb_gadget_unregister_driver (struct usb_gadget_driver *driver)

if (!udc)
return -ENODEV;
if (!driver || driver != udc->driver)
if (!driver || driver != udc->driver || !driver->unbind)
return -EINVAL;

if (machine_is_omap_innovator() || machine_is_omap_osk())
Expand Down Expand Up @@ -2870,6 +2871,8 @@ static int __exit omap_udc_remove(struct platform_device *pdev)

if (!udc)
return -ENODEV;
if (udc->driver)
return -EBUSY;

udc->done = &done;

Expand Down
7 changes: 4 additions & 3 deletions trunk/drivers/usb/gadget/pxa2xx_udc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1623,7 +1623,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
if (!driver
|| driver->speed < USB_SPEED_FULL
|| !driver->bind
|| !driver->unbind
|| !driver->disconnect
|| !driver->setup)
return -EINVAL;
Expand Down Expand Up @@ -1694,7 +1693,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)

if (!dev)
return -ENODEV;
if (!driver || driver != dev->driver)
if (!driver || driver != dev->driver || !driver->unbind)
return -EINVAL;

local_irq_disable();
Expand Down Expand Up @@ -2638,9 +2637,11 @@ static int __exit pxa2xx_udc_remove(struct platform_device *pdev)
{
struct pxa2xx_udc *dev = platform_get_drvdata(pdev);

if (dev->driver)
return -EBUSY;

udc_disable(dev);
remove_proc_files();
usb_gadget_unregister_driver(dev->driver);

if (dev->got_irq) {
free_irq(IRQ_USB, dev);
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/usb/gadget/serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ static struct usb_gadget_driver gs_gadget_driver = {
#endif /* CONFIG_USB_GADGET_DUALSPEED */
.function = GS_LONG_NAME,
.bind = gs_bind,
.unbind = __exit_p(gs_unbind),
.unbind = gs_unbind,
.setup = gs_setup,
.disconnect = gs_disconnect,
.driver = {
Expand Down

0 comments on commit f4abc95

Please sign in to comment.