PNP: Add helper macro for pnp_register_driver boilerplate
authorPeter Huewe <PeterHuewe@gmx.de>
Mon, 16 Mar 2015 20:46:30 +0000 (21:46 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 18 Mar 2015 21:39:16 +0000 (22:39 +0100)
This patch introduces the module_pnp_driver macro which is a
convenience macro for PNP driver modules similar to module_pci_driver.
It is intended to be used by drivers which init/exit section does nothing
but register/unregister the PNP driver. By using this macro it is
possible to eliminate a few lines of boilerplate code per PNP driver.

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

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
include/linux/pnp.h

index 6512e9cbc6d57ca6abe80cc61a15db606c240cb7..5df733b8f704d268995ace95857a7c93528e460f 100644 (file)
@@ -510,4 +510,16 @@ static inline void pnp_unregister_driver(struct pnp_driver *drv) { }
 
 #endif /* CONFIG_PNP */
 
+/**
+ * module_pnp_driver() - Helper macro for registering a PnP driver
+ * @__pnp_driver: pnp_driver struct
+ *
+ * Helper macro for PnP 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_pnp_driver(__pnp_driver) \
+       module_driver(__pnp_driver, pnp_register_driver, \
+                                   pnp_unregister_driver)
+
 #endif /* _LINUX_PNP_H */