From 943e586fe69c8a80fed11d2e04e8e0afd875b61d Mon Sep 17 00:00:00 2001 From: Alexander Shiyan Date: Sun, 10 Mar 2013 10:41:30 +0400 Subject: [PATCH] Extend device_platform_driver macro This patch extends device_platform_driver macro, so now we allow use it with various init levels and subsystems. Signed-off-by: Alexander Shiyan Signed-off-by: Sascha Hauer --- include/driver.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/include/driver.h b/include/driver.h index 46c56c0ac..138eab419 100644 --- a/include/driver.h +++ b/include/driver.h @@ -395,16 +395,19 @@ extern struct bus_type platform_bus; int platform_driver_register(struct driver_d *drv); -/* device_platform_driver() - Helper macro for drivers that don't do +/* register_driver_macro() - Helper macro for drivers that don't do * anything special in module registration. This eliminates a lot of * boilerplate. Each module may only use this macro once. */ -#define device_platform_driver(drv) \ - static int __init drv ## _register(void) \ +#define register_driver_macro(level,bus,drv) \ + static int __init drv##_register(void) \ { \ - return platform_driver_register(&drv); \ + return bus##_driver_register(&drv); \ } \ - device_initcall(drv ## _register) + level##_initcall(drv##_register) + +#define device_platform_driver(drv) \ + register_driver_macro(device,platform,drv) int platform_device_register(struct device_d *new_device);