diff options
| author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2012-09-06 20:11:01 +0200 | 
|---|---|---|
| committer | Felipe Balbi <balbi@ti.com> | 2012-09-10 15:32:58 +0300 | 
| commit | fac3a43e0ab20dbf5e845c6221ead0d073984f41 (patch) | |
| tree | a735712fb538d90bf87ecebb982df19b1b93649e /include/linux/usb/composite.h | |
| parent | e4730931143398ec32088af32e985ec413739c10 (diff) | |
| download | olio-linux-3.10-fac3a43e0ab20dbf5e845c6221ead0d073984f41.tar.xz olio-linux-3.10-fac3a43e0ab20dbf5e845c6221ead0d073984f41.zip  | |
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 'include/linux/usb/composite.h')
| -rw-r--r-- | include/linux/usb/composite.h | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 9d8c3b63449..3153f73ae08 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h @@ -257,12 +257,16 @@ void usb_remove_config(struct usb_composite_dev *,   *	not set.   * @dev: Template descriptor for the device, including default device   *	identifiers. - * @strings: tables of strings, keyed by identifiers assigned during bind() + * @strings: tables of strings, keyed by identifiers assigned during @bind   *	and language IDs provided in control requests   * @max_speed: Highest speed the driver supports.   * @needs_serial: set to 1 if the gadget needs userspace to provide   * 	a serial number.  If one is not provided, warning will be printed. - * @unbind: Reverses bind; called as a side effect of unregistering + * @bind: (REQUIRED) Used to allocate resources that are shared across the + *	whole device, such as string IDs, and add its configurations using + *	@usb_add_config(). This may fail by returning a negative errno + *	value; it should return zero on successful initialization. + * @unbind: Reverses @bind; called as a side effect of unregistering   *	this driver.   * @disconnect: optional driver disconnect method   * @suspend: Notifies when the host stops sending USB traffic, @@ -271,9 +275,9 @@ void usb_remove_config(struct usb_composite_dev *,   *	before function notifications   *   * Devices default to reporting self powered operation.  Devices which rely - * on bus powered operation should report this in their @bind() method. + * on bus powered operation should report this in their @bind method.   * - * Before returning from bind, various fields in the template descriptor + * Before returning from @bind, various fields in the template descriptor   * may be overridden.  These include the idVendor/idProduct/bcdDevice values   * normally to bind the appropriate host side driver, and the three strings   * (iManufacturer, iProduct, iSerialNumber) normally used to provide user @@ -291,6 +295,7 @@ struct usb_composite_driver {  	enum usb_device_speed			max_speed;  	unsigned		needs_serial:1; +	int			(*bind)(struct usb_composite_dev *cdev);  	int			(*unbind)(struct usb_composite_dev *);  	void			(*disconnect)(struct usb_composite_dev *);  |