linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16
@ 2025-04-23  7:15 Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 01/12] gpio: imx-scu: don't check the GPIO range Bartosz Golaszewski
                   ` (14 more replies)
  0 siblings, 15 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. We're in the process of
converting all GPIO drivers to using the new API. This series converts
another round of GPIO controllers.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
Bartosz Golaszewski (12):
      gpio: imx-scu: don't check the GPIO range
      gpio: imx-scu: use lock guards
      gpio: imx-scu: destroy the mutex in detach path
      gpio: imx-scu: use new line value setter callbacks
      gpio: it87: use new line value setter callbacks
      gpio: janz-ttl: use new line value setter callbacks
      gpio: kempld: use new line value setter callbacks
      gpio: ljca: use new line value setter callbacks
      gpio: logicvc: use new line value setter callbacks
      gpio: loongson-64bit: use new line value setter callbacks
      gpio: loongson: use new line value setter callbacks
      gpio: lp3943: use new line value setter callbacks

 drivers/gpio/gpio-imx-scu.c        | 47 +++++++++++++++++---------------------
 drivers/gpio/gpio-it87.c           | 11 +++++----
 drivers/gpio/gpio-janz-ttl.c       |  6 +++--
 drivers/gpio/gpio-kempld.c         |  7 ++++--
 drivers/gpio/gpio-ljca.c           | 13 +++++++----
 drivers/gpio/gpio-logicvc.c        | 11 ++++-----
 drivers/gpio/gpio-loongson-64bit.c |  6 +++--
 drivers/gpio/gpio-loongson.c       |  8 ++++---
 drivers/gpio/gpio-lp3943.c         | 13 +++++++----
 9 files changed, 69 insertions(+), 53 deletions(-)
---
base-commit: 2c9c612abeb38aab0e87d48496de6fd6daafb00b
change-id: 20250422-gpiochip-set-rv-gpio-part2-7e2d60e96d8e

Best regards,
-- 
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [PATCH 01/12] gpio: imx-scu: don't check the GPIO range
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 02/12] gpio: imx-scu: use lock guards Bartosz Golaszewski
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Core GPIO code already does this for drivers, no need to duplicate the
check.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-imx-scu.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/drivers/gpio/gpio-imx-scu.c b/drivers/gpio/gpio-imx-scu.c
index 13baf465aedf..403d03f18122 100644
--- a/drivers/gpio/gpio-imx-scu.c
+++ b/drivers/gpio/gpio-imx-scu.c
@@ -37,9 +37,6 @@ static int imx_scu_gpio_get(struct gpio_chip *chip, unsigned int offset)
 	int level;
 	int err;
 
-	if (offset >= chip->ngpio)
-		return -EINVAL;
-
 	mutex_lock(&priv->lock);
 
 	/* to read PIN state via scu api */
@@ -60,9 +57,6 @@ static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int va
 	struct scu_gpio_priv *priv = gpiochip_get_data(chip);
 	int err;
 
-	if (offset >= chip->ngpio)
-		return;
-
 	mutex_lock(&priv->lock);
 
 	/* to set PIN output level via scu api */
@@ -77,9 +71,6 @@ static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int va
 
 static int imx_scu_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
 {
-	if (offset >= chip->ngpio)
-		return -EINVAL;
-
 	return GPIO_LINE_DIRECTION_OUT;
 }
 

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 02/12] gpio: imx-scu: use lock guards
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 01/12] gpio: imx-scu: don't check the GPIO range Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 03/12] gpio: imx-scu: destroy the mutex in detach path Bartosz Golaszewski
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Simplify the code by using lock guards from cleanup.h with the driver's
mutex.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-imx-scu.c | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/drivers/gpio/gpio-imx-scu.c b/drivers/gpio/gpio-imx-scu.c
index 403d03f18122..99df95e65820 100644
--- a/drivers/gpio/gpio-imx-scu.c
+++ b/drivers/gpio/gpio-imx-scu.c
@@ -6,8 +6,10 @@
  * to control the PIN resources on SCU domain.
  */
 
+#include <linux/cleanup.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/mutex.h>
 #include <linux/gpio/driver.h>
 #include <linux/platform_device.h>
 #include <linux/firmware/imx/svc/rm.h>
@@ -37,13 +39,11 @@ static int imx_scu_gpio_get(struct gpio_chip *chip, unsigned int offset)
 	int level;
 	int err;
 
-	mutex_lock(&priv->lock);
-
-	/* to read PIN state via scu api */
-	err = imx_sc_misc_get_control(priv->handle,
-			scu_rsrc_arr[offset], 0, &level);
-	mutex_unlock(&priv->lock);
-
+	scoped_guard(mutex, &priv->lock) {
+		/* to read PIN state via scu api */
+		err = imx_sc_misc_get_control(priv->handle,
+					      scu_rsrc_arr[offset], 0, &level);
+	}
 	if (err) {
 		dev_err(priv->dev, "SCU get failed: %d\n", err);
 		return err;
@@ -57,13 +57,11 @@ static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int va
 	struct scu_gpio_priv *priv = gpiochip_get_data(chip);
 	int err;
 
-	mutex_lock(&priv->lock);
-
-	/* to set PIN output level via scu api */
-	err = imx_sc_misc_set_control(priv->handle,
-			scu_rsrc_arr[offset], 0, value);
-	mutex_unlock(&priv->lock);
-
+	scoped_guard(mutex, &priv->lock) {
+		/* to set PIN output level via scu api */
+		err = imx_sc_misc_set_control(priv->handle,
+					      scu_rsrc_arr[offset], 0, value);
+	}
 	if (err)
 		dev_err(priv->dev, "SCU set (%d) failed: %d\n",
 				scu_rsrc_arr[offset], err);

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 03/12] gpio: imx-scu: destroy the mutex in detach path
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 01/12] gpio: imx-scu: don't check the GPIO range Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 02/12] gpio: imx-scu: use lock guards Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 04/12] gpio: imx-scu: use new line value setter callbacks Bartosz Golaszewski
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Use devm_mutex_init() in order to clean up after the mutex debug data in
detach and error path.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-imx-scu.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-imx-scu.c b/drivers/gpio/gpio-imx-scu.c
index 99df95e65820..cf98b948f804 100644
--- a/drivers/gpio/gpio-imx-scu.c
+++ b/drivers/gpio/gpio-imx-scu.c
@@ -88,7 +88,10 @@ static int imx_scu_gpio_probe(struct platform_device *pdev)
 		return ret;
 
 	priv->dev = dev;
-	mutex_init(&priv->lock);
+
+	ret = devm_mutex_init(&pdev->dev, &priv->lock);
+	if (ret)
+		return ret;
 
 	gc = &priv->chip;
 	gc->base = -1;

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 04/12] gpio: imx-scu: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 03/12] gpio: imx-scu: destroy the mutex in detach path Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 05/12] gpio: it87: " Bartosz Golaszewski
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-imx-scu.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpio/gpio-imx-scu.c b/drivers/gpio/gpio-imx-scu.c
index cf98b948f804..1693dbf1b777 100644
--- a/drivers/gpio/gpio-imx-scu.c
+++ b/drivers/gpio/gpio-imx-scu.c
@@ -52,7 +52,8 @@ static int imx_scu_gpio_get(struct gpio_chip *chip, unsigned int offset)
 	return level;
 }
 
-static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
+static int imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset,
+			    int value)
 {
 	struct scu_gpio_priv *priv = gpiochip_get_data(chip);
 	int err;
@@ -65,6 +66,8 @@ static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int va
 	if (err)
 		dev_err(priv->dev, "SCU set (%d) failed: %d\n",
 				scu_rsrc_arr[offset], err);
+
+	return err;
 }
 
 static int imx_scu_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
@@ -99,7 +102,7 @@ static int imx_scu_gpio_probe(struct platform_device *pdev)
 	gc->ngpio = ARRAY_SIZE(scu_rsrc_arr);
 	gc->label = dev_name(dev);
 	gc->get = imx_scu_gpio_get;
-	gc->set = imx_scu_gpio_set;
+	gc->set_rv = imx_scu_gpio_set;
 	gc->get_direction = imx_scu_gpio_get_direction;
 
 	platform_set_drvdata(pdev, priv);

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 05/12] gpio: it87: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (3 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 04/12] gpio: imx-scu: use new line value setter callbacks Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-12-07  4:55   ` Daniel Gibson
  2025-04-23  7:15 ` [PATCH 06/12] gpio: janz-ttl: " Bartosz Golaszewski
                   ` (9 subsequent siblings)
  14 siblings, 1 reply; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-it87.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpio-it87.c b/drivers/gpio/gpio-it87.c
index f332341fd4c8..d8184b527bac 100644
--- a/drivers/gpio/gpio-it87.c
+++ b/drivers/gpio/gpio-it87.c
@@ -213,8 +213,7 @@ static int it87_gpio_direction_in(struct gpio_chip *chip, unsigned gpio_num)
 	return rc;
 }
 
-static void it87_gpio_set(struct gpio_chip *chip,
-			  unsigned gpio_num, int val)
+static int it87_gpio_set(struct gpio_chip *chip, unsigned int gpio_num, int val)
 {
 	u8 mask, curr_vals;
 	u16 reg;
@@ -228,6 +227,8 @@ static void it87_gpio_set(struct gpio_chip *chip,
 		outb(curr_vals | mask, reg);
 	else
 		outb(curr_vals & ~mask, reg);
+
+	return 0;
 }
 
 static int it87_gpio_direction_out(struct gpio_chip *chip,
@@ -249,7 +250,9 @@ static int it87_gpio_direction_out(struct gpio_chip *chip,
 	/* set the output enable bit */
 	superio_set_mask(mask, group + it87_gpio->output_base);
 
-	it87_gpio_set(chip, gpio_num, val);
+	rc = it87_gpio_set(chip, gpio_num, val);
+	if (rc)
+		goto exit;
 
 	superio_exit();
 
@@ -264,7 +267,7 @@ static const struct gpio_chip it87_template_chip = {
 	.request		= it87_gpio_request,
 	.get			= it87_gpio_get,
 	.direction_input	= it87_gpio_direction_in,
-	.set			= it87_gpio_set,
+	.set_rv			= it87_gpio_set,
 	.direction_output	= it87_gpio_direction_out,
 	.base			= -1
 };

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 06/12] gpio: janz-ttl: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (4 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 05/12] gpio: it87: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 07/12] gpio: kempld: " Bartosz Golaszewski
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-janz-ttl.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpio/gpio-janz-ttl.c b/drivers/gpio/gpio-janz-ttl.c
index cdf50e4ea165..9f548eda3888 100644
--- a/drivers/gpio/gpio-janz-ttl.c
+++ b/drivers/gpio/gpio-janz-ttl.c
@@ -76,7 +76,7 @@ static int ttl_get_value(struct gpio_chip *gpio, unsigned offset)
 	return !!ret;
 }
 
-static void ttl_set_value(struct gpio_chip *gpio, unsigned offset, int value)
+static int ttl_set_value(struct gpio_chip *gpio, unsigned int offset, int value)
 {
 	struct ttl_module *mod = dev_get_drvdata(gpio->parent);
 	void __iomem *port;
@@ -103,6 +103,8 @@ static void ttl_set_value(struct gpio_chip *gpio, unsigned offset, int value)
 
 	iowrite16be(*shadow, port);
 	spin_unlock(&mod->lock);
+
+	return 0;
 }
 
 static void ttl_write_reg(struct ttl_module *mod, u8 reg, u16 val)
@@ -169,7 +171,7 @@ static int ttl_probe(struct platform_device *pdev)
 	gpio->parent = &pdev->dev;
 	gpio->label = pdev->name;
 	gpio->get = ttl_get_value;
-	gpio->set = ttl_set_value;
+	gpio->set_rv = ttl_set_value;
 	gpio->owner = THIS_MODULE;
 
 	/* request dynamic allocation */

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 07/12] gpio: kempld: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (5 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 06/12] gpio: janz-ttl: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 08/12] gpio: ljca: " Bartosz Golaszewski
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-kempld.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpio/gpio-kempld.c b/drivers/gpio/gpio-kempld.c
index 4ea15f08e0f4..e38e604baa22 100644
--- a/drivers/gpio/gpio-kempld.c
+++ b/drivers/gpio/gpio-kempld.c
@@ -63,7 +63,8 @@ static int kempld_gpio_get(struct gpio_chip *chip, unsigned offset)
 	return !!kempld_gpio_get_bit(pld, KEMPLD_GPIO_LVL_NUM(offset), offset);
 }
 
-static void kempld_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int kempld_gpio_set(struct gpio_chip *chip, unsigned int offset,
+			   int value)
 {
 	struct kempld_gpio_data *gpio = gpiochip_get_data(chip);
 	struct kempld_device_data *pld = gpio->pld;
@@ -71,6 +72,8 @@ static void kempld_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 	kempld_get_mutex(pld);
 	kempld_gpio_bitop(pld, KEMPLD_GPIO_LVL_NUM(offset), offset, value);
 	kempld_release_mutex(pld);
+
+	return 0;
 }
 
 static int kempld_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
@@ -166,7 +169,7 @@ static int kempld_gpio_probe(struct platform_device *pdev)
 	chip->direction_output = kempld_gpio_direction_output;
 	chip->get_direction = kempld_gpio_get_direction;
 	chip->get = kempld_gpio_get;
-	chip->set = kempld_gpio_set;
+	chip->set_rv = kempld_gpio_set;
 	chip->ngpio = kempld_gpio_pincount(pld);
 	if (chip->ngpio == 0) {
 		dev_err(dev, "No GPIO pins detected\n");

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 08/12] gpio: ljca: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (6 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 07/12] gpio: kempld: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:28   ` Sakari Ailus
  2025-04-23  7:15 ` [PATCH 09/12] gpio: logicvc: " Bartosz Golaszewski
                   ` (6 subsequent siblings)
  14 siblings, 1 reply; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-ljca.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpio-ljca.c b/drivers/gpio/gpio-ljca.c
index 817ecb12d550..61524a9ba765 100644
--- a/drivers/gpio/gpio-ljca.c
+++ b/drivers/gpio/gpio-ljca.c
@@ -144,8 +144,8 @@ static int ljca_gpio_get_value(struct gpio_chip *chip, unsigned int offset)
 	return ljca_gpio_read(ljca_gpio, offset);
 }
 
-static void ljca_gpio_set_value(struct gpio_chip *chip, unsigned int offset,
-				int val)
+static int ljca_gpio_set_value(struct gpio_chip *chip, unsigned int offset,
+			       int val)
 {
 	struct ljca_gpio_dev *ljca_gpio = gpiochip_get_data(chip);
 	int ret;
@@ -155,6 +155,8 @@ static void ljca_gpio_set_value(struct gpio_chip *chip, unsigned int offset,
 		dev_err(chip->parent,
 			"set value failed offset: %u val: %d ret: %d\n",
 			offset, val, ret);
+
+	return ret;
 }
 
 static int ljca_gpio_direction_input(struct gpio_chip *chip, unsigned int offset)
@@ -183,7 +185,10 @@ static int ljca_gpio_direction_output(struct gpio_chip *chip,
 	if (ret)
 		return ret;
 
-	ljca_gpio_set_value(chip, offset, val);
+	ret = ljca_gpio_set_value(chip, offset, val);
+	if (ret)
+		return ret;
+
 	set_bit(offset, ljca_gpio->output_enabled);
 
 	return 0;
@@ -432,7 +437,7 @@ static int ljca_gpio_probe(struct auxiliary_device *auxdev,
 	ljca_gpio->gc.direction_output = ljca_gpio_direction_output;
 	ljca_gpio->gc.get_direction = ljca_gpio_get_direction;
 	ljca_gpio->gc.get = ljca_gpio_get_value;
-	ljca_gpio->gc.set = ljca_gpio_set_value;
+	ljca_gpio->gc.set_rv = ljca_gpio_set_value;
 	ljca_gpio->gc.set_config = ljca_gpio_set_config;
 	ljca_gpio->gc.init_valid_mask = ljca_gpio_init_valid_mask;
 	ljca_gpio->gc.can_sleep = true;

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 09/12] gpio: logicvc: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (7 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 08/12] gpio: ljca: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 10/12] gpio: loongson-64bit: " Bartosz Golaszewski
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-logicvc.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpio/gpio-logicvc.c b/drivers/gpio/gpio-logicvc.c
index 05d62011f335..19cd2847467c 100644
--- a/drivers/gpio/gpio-logicvc.c
+++ b/drivers/gpio/gpio-logicvc.c
@@ -61,23 +61,22 @@ static int logicvc_gpio_get(struct gpio_chip *chip, unsigned offset)
 	return !!(value & bit);
 }
 
-static void logicvc_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int logicvc_gpio_set(struct gpio_chip *chip, unsigned int offset,
+			    int value)
 {
 	struct logicvc_gpio *logicvc = gpiochip_get_data(chip);
 	unsigned int reg, bit;
 
 	logicvc_gpio_offset(logicvc, offset, &reg, &bit);
 
-	regmap_update_bits(logicvc->regmap, reg, bit, value ? bit : 0);
+	return regmap_update_bits(logicvc->regmap, reg, bit, value ? bit : 0);
 }
 
 static int logicvc_gpio_direction_output(struct gpio_chip *chip,
 					 unsigned offset, int value)
 {
 	/* Pins are always configured as output, so just set the value. */
-	logicvc_gpio_set(chip, offset, value);
-
-	return 0;
+	return logicvc_gpio_set(chip, offset, value);
 }
 
 static struct regmap_config logicvc_gpio_regmap_config = {
@@ -135,7 +134,7 @@ static int logicvc_gpio_probe(struct platform_device *pdev)
 	logicvc->chip.ngpio = LOGICVC_CTRL_GPIO_BITS +
 			      LOGICVC_POWER_CTRL_GPIO_BITS;
 	logicvc->chip.get = logicvc_gpio_get;
-	logicvc->chip.set = logicvc_gpio_set;
+	logicvc->chip.set_rv = logicvc_gpio_set;
 	logicvc->chip.direction_output = logicvc_gpio_direction_output;
 
 	return devm_gpiochip_add_data(dev, &logicvc->chip, logicvc);

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 10/12] gpio: loongson-64bit: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (8 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 09/12] gpio: logicvc: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 11/12] gpio: loongson: " Bartosz Golaszewski
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-loongson-64bit.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpio/gpio-loongson-64bit.c b/drivers/gpio/gpio-loongson-64bit.c
index a9a93036f08f..26227669f026 100644
--- a/drivers/gpio/gpio-loongson-64bit.c
+++ b/drivers/gpio/gpio-loongson-64bit.c
@@ -105,7 +105,7 @@ static int loongson_gpio_get_direction(struct gpio_chip *chip, unsigned int pin)
 	return GPIO_LINE_DIRECTION_OUT;
 }
 
-static void loongson_gpio_set(struct gpio_chip *chip, unsigned int pin, int value)
+static int loongson_gpio_set(struct gpio_chip *chip, unsigned int pin, int value)
 {
 	unsigned long flags;
 	struct loongson_gpio_chip *lgpio = to_loongson_gpio_chip(chip);
@@ -113,6 +113,8 @@ static void loongson_gpio_set(struct gpio_chip *chip, unsigned int pin, int valu
 	spin_lock_irqsave(&lgpio->lock, flags);
 	loongson_commit_level(lgpio, pin, value);
 	spin_unlock_irqrestore(&lgpio->lock, flags);
+
+	return 0;
 }
 
 static int loongson_gpio_to_irq(struct gpio_chip *chip, unsigned int offset)
@@ -155,7 +157,7 @@ static int loongson_gpio_init(struct device *dev, struct loongson_gpio_chip *lgp
 		lgpio->chip.get = loongson_gpio_get;
 		lgpio->chip.get_direction = loongson_gpio_get_direction;
 		lgpio->chip.direction_output = loongson_gpio_direction_output;
-		lgpio->chip.set = loongson_gpio_set;
+		lgpio->chip.set_rv = loongson_gpio_set;
 		lgpio->chip.parent = dev;
 		spin_lock_init(&lgpio->lock);
 	}

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 11/12] gpio: loongson: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (9 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 10/12] gpio: loongson-64bit: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23  7:15 ` [PATCH 12/12] gpio: lp3943: " Bartosz Golaszewski
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-loongson.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpio/gpio-loongson.c b/drivers/gpio/gpio-loongson.c
index a42145873cc9..8f3668169ebf 100644
--- a/drivers/gpio/gpio-loongson.c
+++ b/drivers/gpio/gpio-loongson.c
@@ -48,8 +48,8 @@ static int loongson_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
 	return !!(val & BIT(gpio + LOONGSON_GPIO_IN_OFFSET));
 }
 
-static void loongson_gpio_set_value(struct gpio_chip *chip,
-		unsigned gpio, int value)
+static int loongson_gpio_set_value(struct gpio_chip *chip, unsigned int gpio,
+				   int value)
 {
 	u32 val;
 
@@ -61,6 +61,8 @@ static void loongson_gpio_set_value(struct gpio_chip *chip,
 		val &= ~BIT(gpio);
 	LOONGSON_GPIODATA = val;
 	spin_unlock(&gpio_lock);
+
+	return 0;
 }
 
 static int loongson_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
@@ -104,7 +106,7 @@ static int loongson_gpio_probe(struct platform_device *pdev)
 	gc->base = 0;
 	gc->ngpio = LOONGSON_N_GPIO;
 	gc->get = loongson_gpio_get_value;
-	gc->set = loongson_gpio_set_value;
+	gc->set_rv = loongson_gpio_set_value;
 	gc->direction_input = loongson_gpio_direction_input;
 	gc->direction_output = loongson_gpio_direction_output;
 

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* [PATCH 12/12] gpio: lp3943: use new line value setter callbacks
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (10 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 11/12] gpio: loongson: " Bartosz Golaszewski
@ 2025-04-23  7:15 ` Bartosz Golaszewski
  2025-04-23 10:58 ` [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Linus Walleij
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-23  7:15 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpio-lp3943.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpio-lp3943.c b/drivers/gpio/gpio-lp3943.c
index 8e58242f5123..52ab3ac4844c 100644
--- a/drivers/gpio/gpio-lp3943.c
+++ b/drivers/gpio/gpio-lp3943.c
@@ -147,7 +147,8 @@ static int lp3943_gpio_get(struct gpio_chip *chip, unsigned int offset)
 		return lp3943_get_gpio_out_status(lp3943_gpio, chip, offset);
 }
 
-static void lp3943_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
+static int lp3943_gpio_set(struct gpio_chip *chip, unsigned int offset,
+			   int value)
 {
 	struct lp3943_gpio *lp3943_gpio = gpiochip_get_data(chip);
 	u8 data;
@@ -157,15 +158,19 @@ static void lp3943_gpio_set(struct gpio_chip *chip, unsigned int offset, int val
 	else
 		data = LP3943_GPIO_OUT_LOW;
 
-	lp3943_gpio_set_mode(lp3943_gpio, offset, data);
+	return lp3943_gpio_set_mode(lp3943_gpio, offset, data);
 }
 
 static int lp3943_gpio_direction_output(struct gpio_chip *chip, unsigned int offset,
 					int value)
 {
 	struct lp3943_gpio *lp3943_gpio = gpiochip_get_data(chip);
+	int ret;
+
+	ret = lp3943_gpio_set(chip, offset, value);
+	if (ret)
+		return ret;
 
-	lp3943_gpio_set(chip, offset, value);
 	lp3943_gpio->input_mask &= ~BIT(offset);
 
 	return 0;
@@ -179,7 +184,7 @@ static const struct gpio_chip lp3943_gpio_chip = {
 	.direction_input	= lp3943_gpio_direction_input,
 	.get			= lp3943_gpio_get,
 	.direction_output	= lp3943_gpio_direction_output,
-	.set			= lp3943_gpio_set,
+	.set_rv			= lp3943_gpio_set,
 	.base			= -1,
 	.ngpio			= LP3943_MAX_GPIO,
 	.can_sleep		= 1,

-- 
2.45.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH 08/12] gpio: ljca: use new line value setter callbacks
  2025-04-23  7:15 ` [PATCH 08/12] gpio: ljca: " Bartosz Golaszewski
@ 2025-04-23  7:28   ` Sakari Ailus
  0 siblings, 0 replies; 20+ messages in thread
From: Sakari Ailus @ 2025-04-23  7:28 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Linus Walleij, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Lixu Zhang, Yinbo Zhu, linux-gpio, imx,
	linux-arm-kernel, linux-kernel, Bartosz Golaszewski

On Wed, Apr 23, 2025 at 09:15:10AM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> 
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
> 
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Thanks, Bartosz!

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Sakari Ailus

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (11 preceding siblings ...)
  2025-04-23  7:15 ` [PATCH 12/12] gpio: lp3943: " Bartosz Golaszewski
@ 2025-04-23 10:58 ` Linus Walleij
  2025-04-28 12:23 ` Peng Fan
  2025-04-30  8:28 ` Bartosz Golaszewski
  14 siblings, 0 replies; 20+ messages in thread
From: Linus Walleij @ 2025-04-23 10:58 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Lixu Zhang, Sakari Ailus, Yinbo Zhu, linux-gpio, imx,
	linux-arm-kernel, linux-kernel, Bartosz Golaszewski

On Wed, Apr 23, 2025 at 9:15 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:

> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. We're in the process of
> converting all GPIO drivers to using the new API. This series converts
> another round of GPIO controllers.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

The series:
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Thanks for your persistant effort in fixing this!!

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (12 preceding siblings ...)
  2025-04-23 10:58 ` [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Linus Walleij
@ 2025-04-28 12:23 ` Peng Fan
  2025-04-30  8:28 ` Bartosz Golaszewski
  14 siblings, 0 replies; 20+ messages in thread
From: Peng Fan @ 2025-04-28 12:23 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Linus Walleij, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Lixu Zhang, Sakari Ailus, Yinbo Zhu, linux-gpio,
	imx, linux-arm-kernel, linux-kernel, Bartosz Golaszewski

On Wed, Apr 23, 2025 at 09:15:02AM +0200, Bartosz Golaszewski wrote:
>struct gpio_chip now has callbacks for setting line values that return
>an integer, allowing to indicate failures. We're in the process of
>converting all GPIO drivers to using the new API. This series converts
>another round of GPIO controllers.
>
>Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>---
>Bartosz Golaszewski (12):
>      gpio: imx-scu: don't check the GPIO range
>      gpio: imx-scu: use lock guards
>      gpio: imx-scu: destroy the mutex in detach path
>      gpio: imx-scu: use new line value setter callbacks

For patch 1-4,

Reviewed-by: Peng Fan <peng.fan@nxp.com>

Thanks,
Peng

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16
  2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
                   ` (13 preceding siblings ...)
  2025-04-28 12:23 ` Peng Fan
@ 2025-04-30  8:28 ` Bartosz Golaszewski
  14 siblings, 0 replies; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-04-30  8:28 UTC (permalink / raw)
  To: Linus Walleij, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Lixu Zhang, Sakari Ailus, Yinbo Zhu,
	Bartosz Golaszewski
  Cc: Bartosz Golaszewski, linux-gpio, imx, linux-arm-kernel,
	linux-kernel

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>


On Wed, 23 Apr 2025 09:15:02 +0200, Bartosz Golaszewski wrote:
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. We're in the process of
> converting all GPIO drivers to using the new API. This series converts
> another round of GPIO controllers.
> 
> 

Applied, thanks!

[01/12] gpio: imx-scu: don't check the GPIO range
        https://git.kernel.org/brgl/linux/c/57bbc60be45b750073acc7d94aaccc4e652319a1
[02/12] gpio: imx-scu: use lock guards
        https://git.kernel.org/brgl/linux/c/dd6d13abb4c363f49ddca2697a781945cf80ad89
[03/12] gpio: imx-scu: destroy the mutex in detach path
        https://git.kernel.org/brgl/linux/c/68ef71400d0e7a9049c36cd0954ecc67521b0bc8
[04/12] gpio: imx-scu: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/40150dda92cd8718a367a32ac345dce05f788a16
[05/12] gpio: it87: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/ef877a159072ca31ed183b086c41fb9951521886
[06/12] gpio: janz-ttl: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/3444049044ce24c2a2bc98c6e30d189451147b63
[07/12] gpio: kempld: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/0c5fa4ee5a2256cd2d37bd0d0dda5d4fbbb30281
[08/12] gpio: ljca: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/722332f58aa82b92c857b053426dd46e09988e38
[09/12] gpio: logicvc: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/ba2ce44332142a86bb0e9246d40b97d6cc191c5d
[10/12] gpio: loongson-64bit: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/145c4d7052fd15d20e5165305b3296a026a40747
[11/12] gpio: loongson: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/7d34d9fbab771779a2b365934fdafff32bddd029
[12/12] gpio: lp3943: use new line value setter callbacks
        https://git.kernel.org/brgl/linux/c/127da457c4e01bd6e4b8a126aaf1be1a6c03fc0b

Best regards,
-- 
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 05/12] gpio: it87: use new line value setter callbacks
  2025-04-23  7:15 ` [PATCH 05/12] gpio: it87: " Bartosz Golaszewski
@ 2025-12-07  4:55   ` Daniel Gibson
  2025-12-08  4:48     ` Bartosz Golaszewski
  0 siblings, 1 reply; 20+ messages in thread
From: Daniel Gibson @ 2025-12-07  4:55 UTC (permalink / raw)
  To: Bartosz Golaszewski, Linus Walleij, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

Hi,
I got one nitpick/question about this, see below

On 4/23/25 09:15, Bartosz Golaszewski wrote:
> @@ -249,7 +250,9 @@ static int it87_gpio_direction_out(struct gpio_chip *chip,
>  	/* set the output enable bit */
>  	superio_set_mask(mask, group + it87_gpio->output_base);
>  
> -	it87_gpio_set(chip, gpio_num, val);
> +	rc = it87_gpio_set(chip, gpio_num, val);
> +	if (rc)
> +		goto exit;
>  >  	superio_exit();

Are you sure that superio_exit() should be skipped (with goto exit) in
case it87_gpio_set() fails?
After all, superio_enter() above (not visible here) succeeded,
only the it87_gpio_set() call failed.

Of course this is kinda academic because currently it87_gpio_set()
always returns 0, but if it ever doesn't, this might become a bug?

Cheers,
Daniel

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 05/12] gpio: it87: use new line value setter callbacks
  2025-12-07  4:55   ` Daniel Gibson
@ 2025-12-08  4:48     ` Bartosz Golaszewski
  2025-12-08 20:48       ` Daniel Gibson
  0 siblings, 1 reply; 20+ messages in thread
From: Bartosz Golaszewski @ 2025-12-08  4:48 UTC (permalink / raw)
  To: Daniel Gibson
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski, Bartosz Golaszewski, Linus Walleij,
	Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Lixu Zhang, Sakari Ailus, Yinbo Zhu

On Sun, 7 Dec 2025 05:55:15 +0100, Daniel Gibson <daniel@gibson.sh> said:
> Hi,
> I got one nitpick/question about this, see below
>
> On 4/23/25 09:15, Bartosz Golaszewski wrote:
>> @@ -249,7 +250,9 @@ static int it87_gpio_direction_out(struct gpio_chip *chip,
>>  	/* set the output enable bit */
>>  	superio_set_mask(mask, group + it87_gpio->output_base);
>>
>> -	it87_gpio_set(chip, gpio_num, val);
>> +	rc = it87_gpio_set(chip, gpio_num, val);
>> +	if (rc)
>> +		goto exit;
>>  >  	superio_exit();
>
> Are you sure that superio_exit() should be skipped (with goto exit) in
> case it87_gpio_set() fails?
> After all, superio_enter() above (not visible here) succeeded,
> only the it87_gpio_set() call failed.
>
> Of course this is kinda academic because currently it87_gpio_set()
> always returns 0, but if it ever doesn't, this might become a bug?
>

Thanks for bringing it to my attention, you're probably right and thats's
just an unintentional omission on my part. Do you want to send a patch that
will fix it or do you prefer me to do it?

Bart

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH 05/12] gpio: it87: use new line value setter callbacks
  2025-12-08  4:48     ` Bartosz Golaszewski
@ 2025-12-08 20:48       ` Daniel Gibson
  0 siblings, 0 replies; 20+ messages in thread
From: Daniel Gibson @ 2025-12-08 20:48 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: linux-gpio, imx, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski, Linus Walleij, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Lixu Zhang, Sakari Ailus,
	Yinbo Zhu

On 12/8/25 05:48, Bartosz Golaszewski wrote:
> 
> Thanks for bringing it to my attention, you're probably right and thats's
> just an unintentional omission on my part. Do you want to send a patch that
> will fix it or do you prefer me to do it?
> 
> Bart

Thanks for the quick reply!

I'd prefer if you do it, I'm not too familiar with the kernel workflow.

Cheers,
Daniel



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2025-12-08 20:49 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-23  7:15 [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 01/12] gpio: imx-scu: don't check the GPIO range Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 02/12] gpio: imx-scu: use lock guards Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 03/12] gpio: imx-scu: destroy the mutex in detach path Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 04/12] gpio: imx-scu: use new line value setter callbacks Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 05/12] gpio: it87: " Bartosz Golaszewski
2025-12-07  4:55   ` Daniel Gibson
2025-12-08  4:48     ` Bartosz Golaszewski
2025-12-08 20:48       ` Daniel Gibson
2025-04-23  7:15 ` [PATCH 06/12] gpio: janz-ttl: " Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 07/12] gpio: kempld: " Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 08/12] gpio: ljca: " Bartosz Golaszewski
2025-04-23  7:28   ` Sakari Ailus
2025-04-23  7:15 ` [PATCH 09/12] gpio: logicvc: " Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 10/12] gpio: loongson-64bit: " Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 11/12] gpio: loongson: " Bartosz Golaszewski
2025-04-23  7:15 ` [PATCH 12/12] gpio: lp3943: " Bartosz Golaszewski
2025-04-23 10:58 ` [PATCH 00/12] gpio: convert more GPIO chips to using new value setters - part 2 for v6.16 Linus Walleij
2025-04-28 12:23 ` Peng Fan
2025-04-30  8:28 ` Bartosz Golaszewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).