[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170126220504.4796-2-andrew.smirnov@gmail.com>
Date: Thu, 26 Jan 2017 14:05:02 -0800
From: Andrey Smirnov <andrew.smirnov@...il.com>
To: linux-kernel@...r.kernel.org
Cc: Andrey Smirnov <andrew.smirnov@...il.com>, yurovsky@...il.com,
Shawn Guo <shawnguo@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Jason Cooper <jason@...edaemon.net>,
Marc Zyngier <marc.zyngier@....com>
Subject: [PATCH 2/4] irqchip: Add IRQCHIP_DECLARE_DRIVER macro
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@...il.com
Cc: Shawn Guo <shawnguo@...nel.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: Jason Cooper <jason@...edaemon.net>
Cc: Marc Zyngier <marc.zyngier@....com>
Signed-off-by: Andrey Smirnov <andrew.smirnov@...il.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
Powered by blists - more mailing lists