FAILED: patch "[PATCH] pinctrl: ingenic: Properly detect GPIO direction when" failed to apply to 5.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 84e7a946da71f678affacea301f6d5cb4d9784e8 Mon Sep 17 00:00:00 2001
From: Paul Cercueil <[email protected]>
Date: Mon, 22 Jun 2020 23:45:48 +0200
Subject: [PATCH] pinctrl: ingenic: Properly detect GPIO direction when
configured for IRQ
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The PAT1 register contains information about the IRQ type (edge/level) for input GPIOs with IRQ enabled, and the direction for non-IRQ GPIOs. So it makes sense to read it only if the GPIO has no interrupt configured, otherwise input GPIOs configured for level IRQs are misdetected as output GPIOs.
drivers/pinctrl/pinctrl-ingenic.c +2 -1
@@ -1958,7 +1958,8 @@ static int ingenic_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)unsigned int pin = gc->base + offset;if (jzpc->info->version >=ID_JZ4760 ) { -if (ingenic_get_pin_config (jzpc, pin,JZ4760_GPIO_PAT1 )) +if (ingenic_get_pin_config (jzpc, pin,JZ4760_GPIO_INT ) || +ingenic_get_pin_config (jzpc, pin,JZ4760_GPIO_PAT1 ))return GPIO_LINE_DIRECTION_IN ;return GPIO_LINE_DIRECTION_OUT ; }
Paul Cercueil
maintainerPATCH 1/1 pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
The PAT1 register contains information about the IRQ type (edge/level) for input GPIOs with IRQ enabled, and the direction for non-IRQ GPIOs. So it makes sense to read it only if the GPIO has no interrupt configured, otherwise input GPIOs configured for level IRQs are misdetected as output GPIOs.
---
Notes:
Original git commit ID: 84e7a946da71f678affacea301f6d5cb4d9784e8
drivers/pinctrl/pinctrl-ingenic.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/pinctrl/pinctrl-ingenic.c +2 -1
@@ -1644,7 +1644,8 @@ static int ingenic_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)unsigned int pin = gc->base + offset;if (jzpc->version >=ID_JZ4760 ) -return ingenic_get_pin_config (jzpc, pin,JZ4760_GPIO_PAT1 ); +return ingenic_get_pin_config (jzpc, pin,JZ4760_GPIO_INT ) || +ingenic_get_pin_config (jzpc, pin,JZ4760_GPIO_PAT1 );if (ingenic_get_pin_config (jzpc, pin,JZ4740_GPIO_SELECT ))return true;
Signature · 1 line
2.28.0
gregkh
maintainerRe: [BACKPORT v5.4 PATCH] pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
Quoted 12 lines · Paul Cercueil
The PAT1 register contains information about the IRQ type (edge/level) for input GPIOs with IRQ enabled, and the direction for non-IRQ GPIOs. So it makes sense to read it only if the GPIO has no interrupt configured, otherwise input GPIOs configured for level IRQs are misdetected as output GPIOs.
Fixes ebd6651418b6 ("pinctrl: ingenic: Implement .get_direction for GPIO chips")Reported-by João Henrique <[email protected]>Signed-off-by Paul Cercueil <[email protected]>Signed-off-by Linus Walleij <[email protected]>
Quoted 4 lines
---
Notes:
Original git commit ID: 84e7a946da71f678affacea301f6d5cb4d9784e8
Now queued up, thanks!
greg k-h