public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] bcma: fix building without OF_IRQ
@ 2016-03-17  9:20 Arnd Bergmann
  2016-03-17  9:20 ` [PATCH 2/2] bcma: use of_dma_configure() to set initial dma mask Arnd Bergmann
  2016-03-23 15:52 ` [1/2] bcma: fix building without OF_IRQ Kalle Valo
  0 siblings, 2 replies; 8+ messages in thread
From: Arnd Bergmann @ 2016-03-17  9:20 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Arnd Bergmann, Kalle Valo, Hauke Mehrtens, linux-wireless,
	linux-kernel

The bcma driver core can be built with or without DT support, but
it fails to build when CONFIG_OF=y and CONFIG_OF_IRQ=n, which
can happen on platforms that do not support IRQ domains.

ERROR: "irq_create_of_mapping" [drivers/bcma/bcma.ko] undefined!
ERROR: "of_irq_parse_raw" [drivers/bcma/bcma.ko] undefined!
ERROR: "of_irq_parse_one" [drivers/bcma/bcma.ko] undefined!

This adds another compile-time check for OF_IRQ, but also
gets rid of now unneeded #ifdef checks: Using the simpler
IS_ENABLED() check for OF_IRQ also covers the case of not
having CONFIG_OF enabled. The check for CONFIG_OF_ADDRESS
was added to allow building on architectures without
OF_ADDRESS, but that has been addressed already in
b1d06b60e90c ("of: Provide static inline function for
of_translate_address if needed").

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/bcma/main.c | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
index 786be8fed39e..1f635471f318 100644
--- a/drivers/bcma/main.c
+++ b/drivers/bcma/main.c
@@ -136,7 +136,6 @@ static bool bcma_is_core_needed_early(u16 core_id)
 	return false;
 }
 
-#if defined(CONFIG_OF) && defined(CONFIG_OF_ADDRESS)
 static struct device_node *bcma_of_find_child_device(struct platform_device *parent,
 						     struct bcma_device *core)
 {
@@ -184,7 +183,7 @@ static unsigned int bcma_of_get_irq(struct platform_device *parent,
 	struct of_phandle_args out_irq;
 	int ret;
 
-	if (!parent || !parent->dev.of_node)
+	if (!IS_ENABLED(CONFIG_OF_IRQ) || !parent || !parent->dev.of_node)
 		return 0;
 
 	ret = bcma_of_irq_parse(parent, core, &out_irq, num);
@@ -202,23 +201,15 @@ static void bcma_of_fill_device(struct platform_device *parent,
 {
 	struct device_node *node;
 
+	if (!IS_ENABLED(CONFIG_OF_IRQ))
+		return;
+
 	node = bcma_of_find_child_device(parent, core);
 	if (node)
 		core->dev.of_node = node;
 
 	core->irq = bcma_of_get_irq(parent, core, 0);
 }
-#else
-static void bcma_of_fill_device(struct platform_device *parent,
-				struct bcma_device *core)
-{
-}
-static inline unsigned int bcma_of_get_irq(struct platform_device *parent,
-					   struct bcma_device *core, int num)
-{
-	return 0;
-}
-#endif /* CONFIG_OF */
 
 unsigned int bcma_core_irq(struct bcma_device *core, int num)
 {
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread
[parent not found: <20160323155243.D1AB4615C6@smtp.codeaurora.org>]

end of thread, other threads:[~2016-03-24 14:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-17  9:20 [PATCH 1/2] bcma: fix building without OF_IRQ Arnd Bergmann
2016-03-17  9:20 ` [PATCH 2/2] bcma: use of_dma_configure() to set initial dma mask Arnd Bergmann
2016-03-17  9:22   ` Arnd Bergmann
2016-03-17  9:43   ` kbuild test robot
2016-03-23 15:52 ` [1/2] bcma: fix building without OF_IRQ Kalle Valo
     [not found] <20160323155243.D1AB4615C6@smtp.codeaurora.org>
2016-03-24 13:19 ` Arnd Bergmann
2016-03-24 13:53   ` Kalle Valo
2016-03-24 14:05     ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox