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/dummy_hcd.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/dummy_hcd.c')
-rw-r--r-- | drivers/usb/gadget/dummy_hcd.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c index dc6546248ed9..7bb9d78aac27 100644 --- a/drivers/usb/gadget/dummy_hcd.c +++ b/drivers/usb/gadget/dummy_hcd.c | |||
@@ -748,7 +748,8 @@ static DEVICE_ATTR (function, S_IRUGO, show_function, NULL); | |||
748 | */ | 748 | */ |
749 | 749 | ||
750 | int | 750 | int |
751 | usb_gadget_register_driver (struct usb_gadget_driver *driver) | 751 | usb_gadget_probe_driver(struct usb_gadget_driver *driver, |
752 | int (*bind)(struct usb_gadget *)) | ||
752 | { | 753 | { |
753 | struct dummy *dum = the_controller; | 754 | struct dummy *dum = the_controller; |
754 | int retval, i; | 755 | int retval, i; |
@@ -757,8 +758,7 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) | |||
757 | return -EINVAL; | 758 | return -EINVAL; |
758 | if (dum->driver) | 759 | if (dum->driver) |
759 | return -EBUSY; | 760 | return -EBUSY; |
760 | if (!driver->bind || !driver->setup | 761 | if (!bind || !driver->setup || driver->speed == USB_SPEED_UNKNOWN) |
761 | || driver->speed == USB_SPEED_UNKNOWN) | ||
762 | return -EINVAL; | 762 | return -EINVAL; |
763 | 763 | ||
764 | /* | 764 | /* |
@@ -796,7 +796,7 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) | |||
796 | dum->gadget.dev.driver = &driver->driver; | 796 | dum->gadget.dev.driver = &driver->driver; |
797 | dev_dbg (udc_dev(dum), "binding gadget driver '%s'\n", | 797 | dev_dbg (udc_dev(dum), "binding gadget driver '%s'\n", |
798 | driver->driver.name); | 798 | driver->driver.name); |
799 | retval = driver->bind(&dum->gadget); | 799 | retval = bind(&dum->gadget); |
800 | if (retval) { | 800 | if (retval) { |
801 | dum->driver = NULL; | 801 | dum->driver = NULL; |
802 | dum->gadget.dev.driver = NULL; | 802 | dum->gadget.dev.driver = NULL; |
@@ -812,7 +812,7 @@ usb_gadget_register_driver (struct usb_gadget_driver *driver) | |||
812 | usb_hcd_poll_rh_status (dummy_to_hcd (dum)); | 812 | usb_hcd_poll_rh_status (dummy_to_hcd (dum)); |
813 | return 0; | 813 | return 0; |
814 | } | 814 | } |
815 | EXPORT_SYMBOL (usb_gadget_register_driver); | 815 | EXPORT_SYMBOL(usb_gadget_probe_driver); |
816 | 816 | ||
817 | int | 817 | int |
818 | usb_gadget_unregister_driver (struct usb_gadget_driver *driver) | 818 | usb_gadget_unregister_driver (struct usb_gadget_driver *driver) |