| From ba410a7089ef9c87c6f315de33fc92bc16c50e54 Mon Sep 17 00:00:00 2001 |
| From: Linus Walleij <linus.walleij@linaro.org> |
| Date: Wed, 29 Aug 2018 17:02:16 +0200 |
| Subject: gpio: mxs: Get rid of external API call |
| |
| [ Upstream commit 833eacc7b5913da9896bacd30db7d490aa777868 ] |
| |
| The MXS driver was calling back into the GPIO API from |
| its irqchip. This is not very elegant, as we are a driver, |
| let's just shortcut back into the gpio_chip .get() function |
| instead. |
| |
| This is a tricky case since the .get() callback is not in |
| this file, instead assigned by bgpio_init(). Calling the |
| function direcly in the gpio_chip is however the lesser |
| evil. |
| |
| Cc: Sascha Hauer <s.hauer@pengutronix.de> |
| Cc: Janusz Uzycki <j.uzycki@elproma.com.pl> |
| Signed-off-by: Linus Walleij <linus.walleij@linaro.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpio/gpio-mxs.c | 4 +--- |
| 1 file changed, 1 insertion(+), 3 deletions(-) |
| |
| diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c |
| index ee1724806f46..ab8dcfea0680 100644 |
| --- a/drivers/gpio/gpio-mxs.c |
| +++ b/drivers/gpio/gpio-mxs.c |
| @@ -32,8 +32,6 @@ |
| #include <linux/platform_device.h> |
| #include <linux/slab.h> |
| #include <linux/gpio/driver.h> |
| -/* FIXME: for gpio_get_value(), replace this by direct register read */ |
| -#include <linux/gpio.h> |
| #include <linux/module.h> |
| |
| #define MXS_SET 0x4 |
| @@ -94,7 +92,7 @@ static int mxs_gpio_set_irq_type(struct irq_data *d, unsigned int type) |
| port->both_edges &= ~pin_mask; |
| switch (type) { |
| case IRQ_TYPE_EDGE_BOTH: |
| - val = gpio_get_value(port->gc.base + d->hwirq); |
| + val = port->gc.get(&port->gc, d->hwirq); |
| if (val) |
| edge = GPIO_INT_FALL_EDGE; |
| else |
| -- |
| 2.17.1 |
| |