Patch "gpio: Revert regression in sysfs-gpio (gpiolib.c)" has been added to the 5.16-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    gpio: Revert regression in sysfs-gpio (gpiolib.c)

to the 5.16-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     gpio-revert-regression-in-sysfs-gpio-gpiolib.c.patch
and it can be found in the queue-5.16 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5b69cf339bdf9f8c0062f6b51d4aac934afcc54e
Author: Marcelo Roberto Jimenez <marcelo.jimenez@xxxxxxxxx>
Date:   Mon Mar 7 10:57:24 2022 +0100

    gpio: Revert regression in sysfs-gpio (gpiolib.c)
    
    [ Upstream commit fc328a7d1fcce263db0b046917a66f3aa6e68719 ]
    
    Some GPIO lines have stopped working after the patch
    commit 2ab73c6d8323f ("gpio: Support GPIO controllers without pin-ranges")
    
    And this has supposedly been fixed in the following patches
    commit 89ad556b7f96a ("gpio: Avoid using pin ranges with !PINCTRL")
    commit 6dbbf84603961 ("gpiolib: Don't free if pin ranges are not defined")
    
    But an erratic behavior where some GPIO lines work while others do not work
    has been introduced.
    
    This patch reverts those changes so that the sysfs-gpio interface works
    properly again.
    
    Signed-off-by: Marcelo Roberto Jimenez <marcelo.jimenez@xxxxxxxxx>
    Signed-off-by: Bartosz Golaszewski <brgl@xxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index dcb0dca651ac..1c73e4cfe80e 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1665,11 +1665,6 @@ 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);
@@ -1681,11 +1676,6 @@ 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);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux