summaryrefslogtreecommitdiff
path: root/include/linux/platform_device.h
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2011-11-25 10:48:00 -0800
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2011-11-25 10:48:00 -0800
commit27f6cbecbf60e2dd2be49a945e9966ed6b20b2de (patch)
tree2416ab37445ec5ec8e669016a2d1f5573863d73c /include/linux/platform_device.h
parent7cf095f46f0ca52773a431db8ac0bf4a07a3501b (diff)
parenteb1852b10593dc3ca73e02bf9ac4753a5a464905 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into wireless-next
Diffstat (limited to 'include/linux/platform_device.h')
-rw-r--r--include/linux/platform_device.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h
index 651a066686ac..2a23f7d1a825 100644
--- a/include/linux/platform_device.h
+++ b/include/linux/platform_device.h
@@ -190,6 +190,23 @@ static inline void platform_set_drvdata(struct platform_device *pdev, void *data
dev_set_drvdata(&pdev->dev, data);
}
+/* module_platform_driver() - Helper macro for drivers that don't 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_platform_driver(__platform_driver) \
+static int __init __platform_driver##_init(void) \
+{ \
+ return platform_driver_register(&(__platform_driver)); \
+} \
+module_init(__platform_driver##_init); \
+static void __exit __platform_driver##_exit(void) \
+{ \
+ platform_driver_unregister(&(__platform_driver)); \
+} \
+module_exit(__platform_driver##_exit);
+
extern struct platform_device *platform_create_bundle(struct platform_driver *driver,
int (*probe)(struct platform_device *),
struct resource *res, unsigned int n_res,