Input: gameport - add helper macro for gameport_driver boilerplate
authorAxel Lin <axel.lin@gmail.com>
Wed, 4 Apr 2012 06:51:08 +0000 (23:51 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 4 Apr 2012 16:25:44 +0000 (09:25 -0700)
This patch introduces the module_gameport_driver macro which is a
convenience macro for gameport driver modules similar to
module_platform_driver. It is intended to be used by drivers
which init/exit section does nothing but registers/unregisters the
gameport driver. By using this macro it is possible to eliminate a
few lines of boilerplate code per gameport driver.

Based on work done by Lars-Peter Clausen <lars@metafoo.de> for
other buses (i2c and spi).

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
include/linux/gameport.h

index b456b08d70ed4bd68aa77ef511b8cc9b05851d97..b986be513406f51fb8abc66d9a26fbe324e30470 100644 (file)
@@ -153,6 +153,19 @@ int __must_check __gameport_register_driver(struct gameport_driver *drv,
 
 void gameport_unregister_driver(struct gameport_driver *drv);
 
+/**
+ * module_gameport_driver() - Helper macro for registering a gameport driver
+ * @__gameport_driver: gameport_driver struct
+ *
+ * Helper macro for gameport drivers which do not do anything special in
+ * module init/exit. This eliminates a lot of boilerplate. Each module may
+ * only use this macro once, and calling it replaces module_init() and
+ * module_exit().
+ */
+#define module_gameport_driver(__gameport_driver) \
+       module_driver(__gameport_driver, gameport_register_driver, \
+                      gameport_unregister_driver)
+
 #endif /* __KERNEL__ */
 
 #define GAMEPORT_MODE_DISABLED         0