pinctrl: at91-pio4: Get rid of legacy call
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 13 Sep 2018 12:02:12 +0000 (14:02 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 14 Sep 2018 10:49:19 +0000 (12:49 +0200)
By just moving the atmel_gpio_to_irq() and calling the internal
function we can get rid of the driver calling back out into the
deprecated external consumer API.

Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-at91-pio4.c

index 9e2f3738bf3ecdec3314be32863b4fcc89b46739..5a850491a5cb75ca5921cf0609cef69397715c25 100644 (file)
@@ -17,8 +17,6 @@
 #include <dt-bindings/pinctrl/at91.h>
 #include <linux/clk.h>
 #include <linux/gpio/driver.h>
-/* FIXME: needed for gpio_to_irq(), get rid of this */
-#include <linux/gpio.h>
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/init.h>
@@ -264,6 +262,13 @@ static struct irq_chip atmel_gpio_irq_chip = {
        .irq_set_wake   = atmel_gpio_irq_set_wake,
 };
 
+static int atmel_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
+{
+       struct atmel_pioctrl *atmel_pioctrl = gpiochip_get_data(chip);
+
+       return irq_find_mapping(atmel_pioctrl->irq_domain, offset);
+}
+
 static void atmel_gpio_irq_handler(struct irq_desc *desc)
 {
        unsigned int irq = irq_desc_get_irq(desc);
@@ -297,8 +302,9 @@ static void atmel_gpio_irq_handler(struct irq_desc *desc)
                        break;
 
                for_each_set_bit(n, &isr, BITS_PER_LONG)
-                       generic_handle_irq(gpio_to_irq(bank *
-                                       ATMEL_PIO_NPINS_PER_BANK + n));
+                       generic_handle_irq(atmel_gpio_to_irq(
+                                       atmel_pioctrl->gpio_chip,
+                                       bank * ATMEL_PIO_NPINS_PER_BANK + n));
        }
 
        chained_irq_exit(chip, desc);
@@ -360,13 +366,6 @@ static void atmel_gpio_set(struct gpio_chip *chip, unsigned offset, int val)
                         BIT(pin->line));
 }
 
-static int atmel_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
-{
-       struct atmel_pioctrl *atmel_pioctrl = gpiochip_get_data(chip);
-
-       return irq_find_mapping(atmel_pioctrl->irq_domain, offset);
-}
-
 static struct gpio_chip atmel_gpio_chip = {
        .direction_input        = atmel_gpio_direction_input,
        .get                    = atmel_gpio_get,