OSDN Git Service

gpio: ixp4xx: Use irq_domain_translate_twocell()
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 23 May 2019 09:49:47 +0000 (11:49 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 28 May 2019 08:28:15 +0000 (10:28 +0200)
Use standard functions. Eventually we will be able to drop all
checks and just assign irq_domain_translate_twocell() to this
callback.

Cc: Brian Masney <masneyb@onstation.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-ixp4xx.c

index 4b1cf7e..670c2a8 100644 (file)
@@ -205,20 +205,20 @@ static int ixp4xx_gpio_irq_domain_translate(struct irq_domain *domain,
                                            unsigned long *hwirq,
                                            unsigned int *type)
 {
+       int ret;
 
        /* We support standard DT translation */
        if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) {
-               *hwirq = fwspec->param[0];
-               *type = fwspec->param[1];
-               return 0;
+               return irq_domain_translate_twocell(domain, fwspec,
+                                                   hwirq, type);
        }
 
        /* This goes away when we transition to DT */
        if (is_fwnode_irqchip(fwspec->fwnode)) {
-               if (fwspec->param_count != 2)
-                       return -EINVAL;
-               *hwirq = fwspec->param[0];
-               *type = fwspec->param[1];
+               ret = irq_domain_translate_twocell(domain, fwspec,
+                                                  hwirq, type);
+               if (ret)
+                       return ret;
                WARN_ON(*type == IRQ_TYPE_NONE);
                return 0;
        }