Messages in this thread Patch in this message | | | From | Andrey Smirnov <> | Subject | [PATCH 2/4] irqchip: Add IRQCHIP_DECLARE_DRIVER macro | Date | Thu, 26 Jan 2017 14:05:02 -0800 |
| |
Add IRQCHIP_DECLARE_DRIVER macro to allow having driver code that both registers irqchip and a platform driver. Based on analogous code of CLK_OF_DECLARE_DRIVER.
Cc: yurovsky@gmail.com Cc: Shawn Guo <shawnguo@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Jason Cooper <jason@lakedaemon.net> Cc: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> --- include/linux/irqchip.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/include/linux/irqchip.h b/include/linux/irqchip.h index 89c34b2..611e8cc 100644 --- a/include/linux/irqchip.h +++ b/include/linux/irqchip.h @@ -27,6 +27,22 @@ #define IRQCHIP_DECLARE(name, compat, fn) OF_DECLARE_2(irqchip, name, compat, fn) /* + * Use this macro when you have a driver that requires two + * initialization routines, one at IRQCHIP_DECLARE, and one at + * platform device probe + */ +#define IRQCHIP_DECLARE_DRIVER(name, compat, fn) \ + static int __init \ + name##_of_irqchip_init_driver(struct device_node *np, \ + struct device_node *parent) \ + { \ + of_node_clear_flag(np, OF_POPULATED); \ + return fn(np, parent); \ + } \ + OF_DECLARE_2(irqchip, name, compat, name##_of_irqchip_init_driver) + + +/* * This macro must be used by the different irqchip drivers to declare * the association between their version and their initialization function. * -- 2.9.3
| |