gpio: pcf857x: only use set_irq_flags() on ARM
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 18 Sep 2013 11:12:29 +0000 (13:12 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 18 Sep 2013 13:52:17 +0000 (15:52 +0200)
As per the pattern from other GPIO drivers, use set_irq_flags()
on ARM only, use irq_set_noprobe() on other archs.

Also rename the argument "virq" to just "irq", this IRQ isn't
any more "virtual" than any other Linux IRQ number, we use
"hwirq" for the actual hw-numbers, "virq" is just bogus.

Cc: George Cherian <george.cherian@ti.com>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-pcf857x.c

index 815944db37bf15d7c5889a3236adbd4648d828f1..54725a632660e84167b5804d8f2db1189fc25bd0 100644 (file)
@@ -195,15 +195,19 @@ static irqreturn_t pcf857x_irq(int irq, void *data)
        return IRQ_HANDLED;
 }
 
-static int pcf857x_irq_domain_map(struct irq_domain *domain, unsigned int virq,
+static int pcf857x_irq_domain_map(struct irq_domain *domain, unsigned int irq,
                                 irq_hw_number_t hw)
 {
        struct pcf857x *gpio = domain->host_data;
 
-       irq_set_chip_and_handler(virq,
+       irq_set_chip_and_handler(irq,
                                 &dummy_irq_chip,
                                 handle_level_irq);
-       set_irq_flags(virq, IRQF_VALID);
+#ifdef CONFIG_ARM
+       set_irq_flags(irq, IRQF_VALID);
+#else
+       irq_set_noprobe(irq);
+#endif
        gpio->irq_mapped |= (1 << hw);
 
        return 0;