diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2012-09-06 14:11:01 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-09-10 08:32:58 -0400 |
commit | fac3a43e0ab20dbf5e845c6221ead0d073984f41 (patch) | |
tree | a735712fb538d90bf87ecebb982df19b1b93649e /include/linux/usb/composite.h | |
parent | e4730931143398ec32088af32e985ec413739c10 (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 '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 9d8c3b634493..3153f73ae083 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 *, | |||
257 | * not set. | 257 | * not set. |
258 | * @dev: Template descriptor for the device, including default device | 258 | * @dev: Template descriptor for the device, including default device |
259 | * identifiers. | 259 | * identifiers. |
260 | * @strings: tables of strings, keyed by identifiers assigned during bind() | 260 | * @strings: tables of strings, keyed by identifiers assigned during @bind |
261 | * and language IDs provided in control requests | 261 | * and language IDs provided in control requests |
262 | * @max_speed: Highest speed the driver supports. | 262 | * @max_speed: Highest speed the driver supports. |
263 | * @needs_serial: set to 1 if the gadget needs userspace to provide | 263 | * @needs_serial: set to 1 if the gadget needs userspace to provide |
264 | * a serial number. If one is not provided, warning will be printed. | 264 | * a serial number. If one is not provided, warning will be printed. |
265 | * @unbind: Reverses bind; called as a side effect of unregistering | 265 | * @bind: (REQUIRED) Used to allocate resources that are shared across the |
266 | * whole device, such as string IDs, and add its configurations using | ||
267 | * @usb_add_config(). This may fail by returning a negative errno | ||
268 | * value; it should return zero on successful initialization. | ||
269 | * @unbind: Reverses @bind; called as a side effect of unregistering | ||
266 | * this driver. | 270 | * this driver. |
267 | * @disconnect: optional driver disconnect method | 271 | * @disconnect: optional driver disconnect method |
268 | * @suspend: Notifies when the host stops sending USB traffic, | 272 | * @suspend: Notifies when the host stops sending USB traffic, |
@@ -271,9 +275,9 @@ void usb_remove_config(struct usb_composite_dev *, | |||
271 | * before function notifications | 275 | * before function notifications |
272 | * | 276 | * |
273 | * Devices default to reporting self powered operation. Devices which rely | 277 | * Devices default to reporting self powered operation. Devices which rely |
274 | * on bus powered operation should report this in their @bind() method. | 278 | * on bus powered operation should report this in their @bind method. |
275 | * | 279 | * |
276 | * Before returning from bind, various fields in the template descriptor | 280 | * Before returning from @bind, various fields in the template descriptor |
277 | * may be overridden. These include the idVendor/idProduct/bcdDevice values | 281 | * may be overridden. These include the idVendor/idProduct/bcdDevice values |
278 | * normally to bind the appropriate host side driver, and the three strings | 282 | * normally to bind the appropriate host side driver, and the three strings |
279 | * (iManufacturer, iProduct, iSerialNumber) normally used to provide user | 283 | * (iManufacturer, iProduct, iSerialNumber) normally used to provide user |
@@ -291,6 +295,7 @@ struct usb_composite_driver { | |||
291 | enum usb_device_speed max_speed; | 295 | enum usb_device_speed max_speed; |
292 | unsigned needs_serial:1; | 296 | unsigned needs_serial:1; |
293 | 297 | ||
298 | int (*bind)(struct usb_composite_dev *cdev); | ||
294 | int (*unbind)(struct usb_composite_dev *); | 299 | int (*unbind)(struct usb_composite_dev *); |
295 | 300 | ||
296 | void (*disconnect)(struct usb_composite_dev *); | 301 | void (*disconnect)(struct usb_composite_dev *); |