From: Axel Lin Date: Wed, 4 Apr 2012 06:50:15 +0000 (-0700) Subject: Input: serio - add helper macro for serio_driver boilerplate X-Git-Tag: next-20120411~36^2~4 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=fa7f86d157781515b74d658120552eafd890f4de;p=karo-tx-linux.git Input: serio - add helper macro for serio_driver boilerplate This patch introduces the module_serio_driver macro which is a convenience macro for serio 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 serio driver. By using this macro it is possible to eliminate a few lines of boilerplate code per serio driver. Based on work done by Lars-Peter Clausen for other buses (i2c and spi). Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov --- diff --git a/include/linux/serio.h b/include/linux/serio.h index ca82861b0e46..6d6cfd3e94a3 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h @@ -96,6 +96,19 @@ int __must_check __serio_register_driver(struct serio_driver *drv, void serio_unregister_driver(struct serio_driver *drv); +/** + * module_serio_driver() - Helper macro for registering a serio driver + * @__serio_driver: serio_driver struct + * + * Helper macro for serio 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_serio_driver(__serio_driver) \ + module_driver(__serio_driver, serio_register_driver, \ + serio_unregister_driver) + static inline int serio_write(struct serio *serio, unsigned char data) { if (serio->write)