Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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/20220314192522.GA3031157@roeck-us.net/
Link: https://lore.kernel.org/stable/20220314155509.552218-1-michael@walle.cc/
Link: https://lore.kernel.org/all/20211217153555.9413-1-marcelo.jimenez@gmail.com/
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Reported-and-bisected-by: Guenter Roeck <linux@roeck-us.net>
Reported-by: Michael Walle <michael@walle.cc>
Cc: Thorsten Leemhuis <linux@leemhuis.info>
Cc: Marcelo Roberto Jimenez <marcelo.jimenez@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Bartosz Golaszewski and committed by
Linus Torvalds
56e337f2 6665ca15

+10
+10
drivers/gpio/gpiolib.c
··· 1701 1701 */ 1702 1702 int gpiochip_generic_request(struct gpio_chip *gc, unsigned int offset) 1703 1703 { 1704 + #ifdef CONFIG_PINCTRL 1705 + if (list_empty(&gc->gpiodev->pin_ranges)) 1706 + return 0; 1707 + #endif 1708 + 1704 1709 return pinctrl_gpio_request(gc->gpiodev->base + offset); 1705 1710 } 1706 1711 EXPORT_SYMBOL_GPL(gpiochip_generic_request); ··· 1717 1712 */ 1718 1713 void gpiochip_generic_free(struct gpio_chip *gc, unsigned int offset) 1719 1714 { 1715 + #ifdef CONFIG_PINCTRL 1716 + if (list_empty(&gc->gpiodev->pin_ranges)) 1717 + return; 1718 + #endif 1719 + 1720 1720 pinctrl_gpio_free(gc->gpiodev->base + offset); 1721 1721 } 1722 1722 EXPORT_SYMBOL_GPL(gpiochip_generic_free);