diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2010-08-12 11:43:53 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-22 13:21:25 -0400 |
commit | b0fca50f5a94a268ed02cfddf44448051ed9343f (patch) | |
tree | bc398947bcf6355f05ec33e4fea6a0b1927384ac /drivers/usb/gadget/s3c2410_udc.c | |
parent | e12995ec8f8d99f2a339541fc28998af2d60af0f (diff) |
usb gadget: don't save bind callback in struct usb_gadget_driver
To accomplish this the function to register a gadget driver takes the bind
function as a second argument. To make things clearer rename the function
to resemble platform_driver_probe.
This fixes many section mismatches like
WARNING: drivers/usb/gadget/g_printer.o(.data+0xc): Section mismatch in
reference from the variable printer_driver to the function
.init.text:printer_bind()
The variable printer_driver references
the function __init printer_bind()
All callers are fixed.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
[m.nazarewicz@samsung.com: added dbgp]
Signed-off-by: Michał Nazarewicz <m.nazarewicz@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget/s3c2410_udc.c')
-rw-r--r-- | drivers/usb/gadget/s3c2410_udc.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c index ea2b3c7ebee5..c2448950a8d8 100644 --- a/drivers/usb/gadget/s3c2410_udc.c +++ b/drivers/usb/gadget/s3c2410_udc.c | |||
@@ -1632,15 +1632,15 @@ static void s3c2410_udc_enable(struct s3c2410_udc *dev) | |||
1632 | } | 1632 | } |
1633 | 1633 | ||
1634 | /* | 1634 | /* |
1635 | * usb_gadget_register_driver | 1635 | * usb_gadget_probe_driver |
1636 | */ | 1636 | */ |
1637 | int usb_gadget_register_driver(struct usb_gadget_driver *driver) | 1637 | int usb_gadget_probe_driver(struct usb_gadget_driver *driver, |
1638 | int (*bind)(struct usb_gadget *)) | ||
1638 | { | 1639 | { |
1639 | struct s3c2410_udc *udc = the_controller; | 1640 | struct s3c2410_udc *udc = the_controller; |
1640 | int retval; | 1641 | int retval; |
1641 | 1642 | ||
1642 | dprintk(DEBUG_NORMAL, "usb_gadget_register_driver() '%s'\n", | 1643 | dprintk(DEBUG_NORMAL, "%s() '%s'\n", __func__, driver->driver.name); |
1643 | driver->driver.name); | ||
1644 | 1644 | ||
1645 | /* Sanity checks */ | 1645 | /* Sanity checks */ |
1646 | if (!udc) | 1646 | if (!udc) |
@@ -1649,10 +1649,9 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) | |||
1649 | if (udc->driver) | 1649 | if (udc->driver) |
1650 | return -EBUSY; | 1650 | return -EBUSY; |
1651 | 1651 | ||
1652 | if (!driver->bind || !driver->setup | 1652 | if (!bind || !driver->setup || driver->speed < USB_SPEED_FULL) { |
1653 | || driver->speed < USB_SPEED_FULL) { | ||
1654 | printk(KERN_ERR "Invalid driver: bind %p setup %p speed %d\n", | 1653 | printk(KERN_ERR "Invalid driver: bind %p setup %p speed %d\n", |
1655 | driver->bind, driver->setup, driver->speed); | 1654 | bind, driver->setup, driver->speed); |
1656 | return -EINVAL; | 1655 | return -EINVAL; |
1657 | } | 1656 | } |
1658 | #if defined(MODULE) | 1657 | #if defined(MODULE) |
@@ -1675,7 +1674,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) | |||
1675 | dprintk(DEBUG_NORMAL, "binding gadget driver '%s'\n", | 1674 | dprintk(DEBUG_NORMAL, "binding gadget driver '%s'\n", |
1676 | driver->driver.name); | 1675 | driver->driver.name); |
1677 | 1676 | ||
1678 | if ((retval = driver->bind (&udc->gadget)) != 0) { | 1677 | if ((retval = bind(&udc->gadget)) != 0) { |
1679 | device_del(&udc->gadget.dev); | 1678 | device_del(&udc->gadget.dev); |
1680 | goto register_error; | 1679 | goto register_error; |
1681 | } | 1680 | } |
@@ -1690,6 +1689,7 @@ register_error: | |||
1690 | udc->gadget.dev.driver = NULL; | 1689 | udc->gadget.dev.driver = NULL; |
1691 | return retval; | 1690 | return retval; |
1692 | } | 1691 | } |
1692 | EXPORT_SYMBOL(usb_gadget_probe_driver); | ||
1693 | 1693 | ||
1694 | /* | 1694 | /* |
1695 | * usb_gadget_unregister_driver | 1695 | * usb_gadget_unregister_driver |
@@ -2049,7 +2049,6 @@ static void __exit udc_exit(void) | |||
2049 | } | 2049 | } |
2050 | 2050 | ||
2051 | EXPORT_SYMBOL(usb_gadget_unregister_driver); | 2051 | EXPORT_SYMBOL(usb_gadget_unregister_driver); |
2052 | EXPORT_SYMBOL(usb_gadget_register_driver); | ||
2053 | 2052 | ||
2054 | module_init(udc_init); | 2053 | module_init(udc_init); |
2055 | module_exit(udc_exit); | 2054 | module_exit(udc_exit); |