diff options
author | Bartosz Golaszewski <[email protected]> | 2022-03-15 17:52:05 +0100 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2022-03-15 09:59:08 -0700 |
commit | 56e337f2cf1326323844927a04e9dbce9a244835 (patch) | |
tree | 100ae36c9691fd2c6bbbc49ddbdd3765ee4ef9b3 | |
parent | 6665ca15746dc34606b5d79fae278a101a368437 (diff) |
Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"
This reverts commit fc328a7d1fcce263db0b046917a66f3aa6e68719.
This commit - while attempting to fix a regression - has caused a number
of other problems. As the fallout from it is more significant than the
initial problem itself, revert it for now before we find a correct
solution.
Link: https://lore.kernel.org/all/[email protected]/
Link: https://lore.kernel.org/stable/[email protected]/
Link: https://lore.kernel.org/all/[email protected]/
Signed-off-by: Bartosz Golaszewski <[email protected]>
Reported-and-bisected-by: Guenter Roeck <[email protected]>
Reported-by: Michael Walle <[email protected]>
Cc: Thorsten Leemhuis <[email protected]>
Cc: Marcelo Roberto Jimenez <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/gpio/gpiolib.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index defb7c464b87..6630d92e30ad 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1701,6 +1701,11 @@ static inline void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gc) */ int gpiochip_generic_request(struct gpio_chip *gc, unsigned int offset) { +#ifdef CONFIG_PINCTRL + if (list_empty(&gc->gpiodev->pin_ranges)) + return 0; +#endif + return pinctrl_gpio_request(gc->gpiodev->base + offset); } EXPORT_SYMBOL_GPL(gpiochip_generic_request); @@ -1712,6 +1717,11 @@ EXPORT_SYMBOL_GPL(gpiochip_generic_request); */ void gpiochip_generic_free(struct gpio_chip *gc, unsigned int offset) { +#ifdef CONFIG_PINCTRL + if (list_empty(&gc->gpiodev->pin_ranges)) + return; +#endif + pinctrl_gpio_free(gc->gpiodev->base + offset); } EXPORT_SYMBOL_GPL(gpiochip_generic_free); |