summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/composite.c
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2012-09-06 20:11:01 +0200
committerFelipe Balbi <balbi@ti.com>2012-09-10 15:32:58 +0300
commitfac3a43e0ab20dbf5e845c6221ead0d073984f41 (patch)
treea735712fb538d90bf87ecebb982df19b1b93649e /drivers/usb/gadget/composite.c
parente4730931143398ec32088af32e985ec413739c10 (diff)
usb: gadget: move bind callback into driver struct usb_composite_driver
It was moved to be an argument in 07a18bd716ed5 ("usb gadget: don't save bind callback in struct usb_composite_driver"). The reason was to avoid the section missmatch. The warning was shown because ->bind is marked as __init becuase it is a one time init. The warning can be also suppresed by whitelisting the variable i.e. rename it to lets say _probe. Acked-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget/composite.c')
-rw-r--r--drivers/usb/gadget/composite.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 91411a6d741b..402e5bd8b3e5 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -32,7 +32,6 @@
#define USB_BUFSIZ 1024
static struct usb_composite_driver *composite;
-static int (*composite_gadget_bind)(struct usb_composite_dev *cdev);
/* Some systems will need runtime overrides for the product identifiers
* published in the device descriptor, either numbers or strings or both.
@@ -1468,7 +1467,7 @@ static int composite_bind(struct usb_gadget *gadget)
* serial number), register function drivers, potentially update
* power state and consumption, etc
*/
- status = composite_gadget_bind(cdev);
+ status = composite->bind(cdev);
if (status < 0)
goto fail;
@@ -1621,7 +1620,9 @@ static struct usb_gadget_driver composite_driver = {
int usb_composite_probe(struct usb_composite_driver *driver,
int (*bind)(struct usb_composite_dev *cdev))
{
- if (!driver || !driver->dev || !bind || composite)
+ if (!driver || !driver->dev || composite)
+ return -EINVAL;
+ if (!bind && !driver->bind)
return -EINVAL;
if (!driver->name)
@@ -1632,7 +1633,8 @@ int usb_composite_probe(struct usb_composite_driver *driver,
composite_driver.driver.name = driver->name;
composite_driver.max_speed = driver->max_speed;
composite = driver;
- composite_gadget_bind = bind;
+ if (!driver->bind)
+ driver->bind = bind;
return usb_gadget_probe_driver(&composite_driver, composite_bind);
}