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/r8a66597-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/r8a66597-udc.c')
-rw-r--r-- | drivers/usb/gadget/r8a66597-udc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c index 2456ccd9965e..95092151f901 100644 --- a/drivers/usb/gadget/r8a66597-udc.c +++ b/drivers/usb/gadget/r8a66597-udc.c | |||
@@ -1405,14 +1405,15 @@ static struct usb_ep_ops r8a66597_ep_ops = { | |||
1405 | /*-------------------------------------------------------------------------*/ | 1405 | /*-------------------------------------------------------------------------*/ |
1406 | static struct r8a66597 *the_controller; | 1406 | static struct r8a66597 *the_controller; |
1407 | 1407 | ||
1408 | int usb_gadget_register_driver(struct usb_gadget_driver *driver) | 1408 | int usb_gadget_probe_driver(struct usb_gadget_driver *driver, |
1409 | int (*bind)(struct usb_gadget *)) | ||
1409 | { | 1410 | { |
1410 | struct r8a66597 *r8a66597 = the_controller; | 1411 | struct r8a66597 *r8a66597 = the_controller; |
1411 | int retval; | 1412 | int retval; |
1412 | 1413 | ||
1413 | if (!driver | 1414 | if (!driver |
1414 | || driver->speed != USB_SPEED_HIGH | 1415 | || driver->speed != USB_SPEED_HIGH |
1415 | || !driver->bind | 1416 | || !bind |
1416 | || !driver->setup) | 1417 | || !driver->setup) |
1417 | return -EINVAL; | 1418 | return -EINVAL; |
1418 | if (!r8a66597) | 1419 | if (!r8a66597) |
@@ -1431,7 +1432,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) | |||
1431 | goto error; | 1432 | goto error; |
1432 | } | 1433 | } |
1433 | 1434 | ||
1434 | retval = driver->bind(&r8a66597->gadget); | 1435 | retval = bind(&r8a66597->gadget); |
1435 | if (retval) { | 1436 | if (retval) { |
1436 | printk(KERN_ERR "bind to driver error (%d)\n", retval); | 1437 | printk(KERN_ERR "bind to driver error (%d)\n", retval); |
1437 | device_del(&r8a66597->gadget.dev); | 1438 | device_del(&r8a66597->gadget.dev); |
@@ -1456,7 +1457,7 @@ error: | |||
1456 | 1457 | ||
1457 | return retval; | 1458 | return retval; |
1458 | } | 1459 | } |
1459 | EXPORT_SYMBOL(usb_gadget_register_driver); | 1460 | EXPORT_SYMBOL(usb_gadget_probe_driver); |
1460 | 1461 | ||
1461 | int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | 1462 | int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) |
1462 | { | 1463 | { |