Browse Source

of/irq: fix guards for irq_of_parse_and_map prototype

Since OF is now a userselectable config symbol, having OF=y but OF_IRQ=n
is a valid combination for non-OF platforms, and OF=y does not guarantee
anymore that OF_IRQ is enabled (or we are building for SPARC).

Fixes the following build error with OF=y, IRQ_DOMAIN=n and SPI=y:

drivers/built-in.o: In function `spi_register_master':
(.text+0xc3ae): undefined reference to `irq_of_parse_and_map'
Makefile:935: recipe for target 'vmlinux' failed
make: *** [vmlinux] Error 1

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Jonas Gorski 10 years ago
parent
commit
62ebf93193
1 changed files with 2 additions and 2 deletions
  1. 2 2
      include/linux/of_irq.h

+ 2 - 2
include/linux/of_irq.h

@@ -70,7 +70,7 @@ static inline void of_msi_configure(struct device *dev, struct device_node *np)
 }
 }
 #endif
 #endif
 
 
-#if defined(CONFIG_OF)
+#if defined(CONFIG_OF_IRQ) || defined(CONFIG_SPARC)
 /*
 /*
  * irq_of_parse_and_map() is used by all OF enabled platforms; but SPARC
  * irq_of_parse_and_map() is used by all OF enabled platforms; but SPARC
  * implements it differently.  However, the prototype is the same for all,
  * implements it differently.  However, the prototype is the same for all,
@@ -78,7 +78,7 @@ static inline void of_msi_configure(struct device *dev, struct device_node *np)
  */
  */
 extern unsigned int irq_of_parse_and_map(struct device_node *node, int index);
 extern unsigned int irq_of_parse_and_map(struct device_node *node, int index);
 
 
-#else /* !CONFIG_OF */
+#else /* !CONFIG_OF && !CONFIG_SPARC */
 static inline unsigned int irq_of_parse_and_map(struct device_node *dev,
 static inline unsigned int irq_of_parse_and_map(struct device_node *dev,
 						int index)
 						int index)
 {
 {