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/langwell_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/langwell_udc.c')
-rw-r--r-- | drivers/usb/gadget/langwell_udc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c index ccc9c070a30d..1ef17a6dcb51 100644 --- a/drivers/usb/gadget/langwell_udc.c +++ b/drivers/usb/gadget/langwell_udc.c | |||
@@ -1855,7 +1855,8 @@ static DEVICE_ATTR(remote_wakeup, S_IWUSR, NULL, store_remote_wakeup); | |||
1855 | * the driver might get unbound. | 1855 | * the driver might get unbound. |
1856 | */ | 1856 | */ |
1857 | 1857 | ||
1858 | int usb_gadget_register_driver(struct usb_gadget_driver *driver) | 1858 | int usb_gadget_probe_driver(struct usb_gadget_driver *driver, |
1859 | int (*bind)(struct usb_gadget *)) | ||
1859 | { | 1860 | { |
1860 | struct langwell_udc *dev = the_controller; | 1861 | struct langwell_udc *dev = the_controller; |
1861 | unsigned long flags; | 1862 | unsigned long flags; |
@@ -1878,7 +1879,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver) | |||
1878 | 1879 | ||
1879 | spin_unlock_irqrestore(&dev->lock, flags); | 1880 | spin_unlock_irqrestore(&dev->lock, flags); |
1880 | 1881 | ||
1881 | retval = driver->bind(&dev->gadget); | 1882 | retval = bind(&dev->gadget); |
1882 | if (retval) { | 1883 | if (retval) { |
1883 | dev_dbg(&dev->pdev->dev, "bind to driver %s --> %d\n", | 1884 | dev_dbg(&dev->pdev->dev, "bind to driver %s --> %d\n", |
1884 | driver->driver.name, retval); | 1885 | driver->driver.name, retval); |
@@ -1916,7 +1917,7 @@ err_unbind: | |||
1916 | dev_dbg(&dev->pdev->dev, "<--- %s()\n", __func__); | 1917 | dev_dbg(&dev->pdev->dev, "<--- %s()\n", __func__); |
1917 | return retval; | 1918 | return retval; |
1918 | } | 1919 | } |
1919 | EXPORT_SYMBOL(usb_gadget_register_driver); | 1920 | EXPORT_SYMBOL(usb_gadget_probe_driver); |
1920 | 1921 | ||
1921 | 1922 | ||
1922 | /* unregister gadget driver */ | 1923 | /* unregister gadget driver */ |
@@ -1930,7 +1931,7 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | |||
1930 | 1931 | ||
1931 | dev_dbg(&dev->pdev->dev, "---> %s()\n", __func__); | 1932 | dev_dbg(&dev->pdev->dev, "---> %s()\n", __func__); |
1932 | 1933 | ||
1933 | if (unlikely(!driver || !driver->bind || !driver->unbind)) | 1934 | if (unlikely(!driver || !driver->unbind)) |
1934 | return -EINVAL; | 1935 | return -EINVAL; |
1935 | 1936 | ||
1936 | /* exit PHY low power suspend */ | 1937 | /* exit PHY low power suspend */ |