omap1: Fix innovator FPGA init for multi-omap
authorTony Lindgren <tony@atomide.com>
Sat, 18 Dec 2010 02:37:08 +0000 (18:37 -0800)
committerTony Lindgren <tony@atomide.com>
Tue, 21 Dec 2010 02:48:16 +0000 (18:48 -0800)
No need to call this early from init_irq. Also recent changes
initialize GPIO now later, so calling gpio_request from init_irq
will make it fail.

While at it, also remove the unnecessary EXPORT_SYMBOL.

Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap1/board-innovator.c
arch/arm/mach-omap1/fpga.c
arch/arm/plat-omap/include/plat/fpga.h

index a051acd..8d59b07 100644 (file)
@@ -290,11 +290,6 @@ static void __init innovator_init_irq(void)
 {
        omap1_init_common_hw();
        omap_init_irq();
-#ifdef CONFIG_ARCH_OMAP15XX
-       if (cpu_is_omap1510()) {
-               omap1510_fpga_init_irq();
-       }
-#endif
 }
 
 #ifdef CONFIG_ARCH_OMAP15XX
@@ -385,6 +380,8 @@ static struct omap_board_config_kernel innovator_config[] = {
 
 static void __init innovator_init(void)
 {
+       if (cpu_is_omap1510())
+               omap1510_fpga_init_irq();
        innovator_init_smc91x();
 
 #ifdef CONFIG_ARCH_OMAP15XX
index 5cfce16..8780e75 100644 (file)
@@ -143,7 +143,7 @@ static struct irq_chip omap_fpga_irq = {
  */
 void omap1510_fpga_init_irq(void)
 {
-       int i;
+       int i, res;
 
        __raw_writeb(0, OMAP1510_FPGA_IMR_LO);
        __raw_writeb(0, OMAP1510_FPGA_IMR_HI);
@@ -177,10 +177,12 @@ void omap1510_fpga_init_irq(void)
         * NOTE: For general GPIO/MPUIO access and interrupts, please see
         * gpio.[ch]
         */
-       gpio_request(13, "FPGA irq");
+       res = gpio_request(13, "FPGA irq");
+       if (res) {
+               pr_err("%s failed to get gpio\n", __func__);
+               return;
+       }
        gpio_direction_input(13);
        set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING);
        set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux);
 }
-
-EXPORT_SYMBOL(omap1510_fpga_init_irq);
index f1864a6..ae39bcb 100644 (file)
 #ifndef __ASM_ARCH_OMAP_FPGA_H
 #define __ASM_ARCH_OMAP_FPGA_H
 
-#if defined(CONFIG_MACH_OMAP_INNOVATOR) && defined(CONFIG_ARCH_OMAP15XX)
 extern void omap1510_fpga_init_irq(void);
-#else
-#define omap1510_fpga_init_irq()       (0)
-#endif
 
 #define fpga_read(reg)                 __raw_readb(reg)
 #define fpga_write(val, reg)           __raw_writeb(val, reg)