Commit c58d900c authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Kalle Valo

bcma: fix building without OF_IRQ

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
b1d06b60 ("of: Provide static inline function for
of_translate_address if needed").
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 372f7d6a
...@@ -136,7 +136,6 @@ static bool bcma_is_core_needed_early(u16 core_id) ...@@ -136,7 +136,6 @@ static bool bcma_is_core_needed_early(u16 core_id)
return false; return false;
} }
#if defined(CONFIG_OF) && defined(CONFIG_OF_ADDRESS)
static struct device_node *bcma_of_find_child_device(struct platform_device *parent, static struct device_node *bcma_of_find_child_device(struct platform_device *parent,
struct bcma_device *core) struct bcma_device *core)
{ {
...@@ -184,7 +183,7 @@ static unsigned int bcma_of_get_irq(struct platform_device *parent, ...@@ -184,7 +183,7 @@ static unsigned int bcma_of_get_irq(struct platform_device *parent,
struct of_phandle_args out_irq; struct of_phandle_args out_irq;
int ret; int ret;
if (!parent || !parent->dev.of_node) if (!IS_ENABLED(CONFIG_OF_IRQ) || !parent || !parent->dev.of_node)
return 0; return 0;
ret = bcma_of_irq_parse(parent, core, &out_irq, num); ret = bcma_of_irq_parse(parent, core, &out_irq, num);
...@@ -202,23 +201,15 @@ static void bcma_of_fill_device(struct platform_device *parent, ...@@ -202,23 +201,15 @@ static void bcma_of_fill_device(struct platform_device *parent,
{ {
struct device_node *node; struct device_node *node;
if (!IS_ENABLED(CONFIG_OF_IRQ))
return;
node = bcma_of_find_child_device(parent, core); node = bcma_of_find_child_device(parent, core);
if (node) if (node)
core->dev.of_node = node; core->dev.of_node = node;
core->irq = bcma_of_get_irq(parent, core, 0); 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) unsigned int bcma_core_irq(struct bcma_device *core, int num)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment