aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/usb')
-rw-r--r--include/linux/usb/serial.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index 749836f2890c..c9f65146a039 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -292,10 +292,9 @@ struct usb_serial_driver {
292#define to_usb_serial_driver(d) \ 292#define to_usb_serial_driver(d) \
293 container_of(d, struct usb_serial_driver, driver) 293 container_of(d, struct usb_serial_driver, driver)
294 294
295extern int usb_serial_register_drivers(struct usb_driver *udriver, 295extern int usb_serial_register_drivers(struct usb_serial_driver *const serial_drivers[],
296 struct usb_serial_driver * const serial_drivers[]); 296 const char *name, const struct usb_device_id *id_table);
297extern void usb_serial_deregister_drivers(struct usb_driver *udriver, 297extern void usb_serial_deregister_drivers(struct usb_serial_driver *const serial_drivers[]);
298 struct usb_serial_driver * const serial_drivers[]);
299extern void usb_serial_port_softint(struct usb_serial_port *port); 298extern void usb_serial_port_softint(struct usb_serial_port *port);
300 299
301extern int usb_serial_suspend(struct usb_interface *intf, pm_message_t message); 300extern int usb_serial_suspend(struct usb_interface *intf, pm_message_t message);
@@ -396,8 +395,8 @@ do { \
396 395
397/* 396/*
398 * module_usb_serial_driver() - Helper macro for registering a USB Serial driver 397 * module_usb_serial_driver() - Helper macro for registering a USB Serial driver
399 * @__usb_driver: usb_driver struct to register
400 * @__serial_drivers: list of usb_serial drivers to register 398 * @__serial_drivers: list of usb_serial drivers to register
399 * @__ids: all device ids that @__serial_drivers bind to
401 * 400 *
402 * Helper macro for USB serial drivers which do not do anything special 401 * Helper macro for USB serial drivers which do not do anything special
403 * in module init/exit. This eliminates a lot of boilerplate. Each 402 * in module init/exit. This eliminates a lot of boilerplate. Each
@@ -405,9 +404,21 @@ do { \
405 * module_init() and module_exit() 404 * module_init() and module_exit()
406 * 405 *
407 */ 406 */
408#define module_usb_serial_driver(__usb_driver, __serial_drivers) \ 407#define usb_serial_module_driver(__name, __serial_drivers, __ids) \
409 module_driver(__usb_driver, usb_serial_register_drivers, \ 408static int __init usb_serial_module_init(void) \
410 usb_serial_deregister_drivers, __serial_drivers) 409{ \
410 return usb_serial_register_drivers(__serial_drivers, \
411 __name, __ids); \
412} \
413module_init(usb_serial_module_init); \
414static void __exit usb_serial_module_exit(void) \
415{ \
416 usb_serial_deregister_drivers(__serial_drivers); \
417} \
418module_exit(usb_serial_module_exit);
419
420#define module_usb_serial_driver(__serial_drivers, __ids) \
421 usb_serial_module_driver(KBUILD_MODNAME, __serial_drivers, __ids)
411 422
412#endif /* __LINUX_USB_SERIAL_H */ 423#endif /* __LINUX_USB_SERIAL_H */
413 424