linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: "Linus Walleij" <linus.walleij@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Michael Walle" <mwalle@kernel.org>,
	"Bamvor Jian Zhang" <bamv2005@gmail.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	Keerthy <j-keerthy@ti.com>,
	"Uwe Kleine-König" <ukleinek@kernel.org>
Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-pwm@vger.kernel.org,
	 Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH 11/14] gpio: latch: use lock guards
Date: Tue, 11 Feb 2025 13:09:45 +0100	[thread overview]
Message-ID: <20250211-gpio-set-retval-v1-11-52d3d613d7d3@linaro.org> (raw)
In-Reply-To: <20250211-gpio-set-retval-v1-0-52d3d613d7d3@linaro.org>

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

Use lock guards from linux/cleanup.h. This will make the subsequent
commit that switches to using value returning GPIO line setters much
simpler as we'll be able to return values without caring about releasing
the locks.

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

diff --git a/drivers/gpio/gpio-latch.c b/drivers/gpio/gpio-latch.c
index e935b3b34117..d5d3817eea67 100644
--- a/drivers/gpio/gpio-latch.c
+++ b/drivers/gpio/gpio-latch.c
@@ -38,6 +38,7 @@
  * in the corresponding device tree properties.
  */
 
+#include <linux/cleanup.h>
 #include <linux/err.h>
 #include <linux/gpio/consumer.h>
 #include <linux/gpio/driver.h>
@@ -93,24 +94,19 @@ static void gpio_latch_set_unlocked(struct gpio_latch_priv *priv,
 static void gpio_latch_set(struct gpio_chip *gc, unsigned int offset, int val)
 {
 	struct gpio_latch_priv *priv = gpiochip_get_data(gc);
-	unsigned long flags;
 
-	spin_lock_irqsave(&priv->spinlock, flags);
+	guard(spinlock_irqsave)(&priv->spinlock);
 
 	gpio_latch_set_unlocked(priv, gpiod_set_value, offset, val);
-
-	spin_unlock_irqrestore(&priv->spinlock, flags);
 }
 
 static void gpio_latch_set_can_sleep(struct gpio_chip *gc, unsigned int offset, int val)
 {
 	struct gpio_latch_priv *priv = gpiochip_get_data(gc);
 
-	mutex_lock(&priv->mutex);
+	guard(mutex)(&priv->mutex);
 
 	gpio_latch_set_unlocked(priv, gpiod_set_value_cansleep, offset, val);
-
-	mutex_unlock(&priv->mutex);
 }
 
 static bool gpio_latch_can_sleep(struct gpio_latch_priv *priv, unsigned int n_latches)

-- 
2.45.2


  parent reply	other threads:[~2025-02-11 12:10 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-11 12:09 [PATCH 00/14] gpiolib: indicate errors in value setters Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 01/14] gpiolib: make value setters have return values Bartosz Golaszewski
2025-02-12  8:03   ` kernel test robot
2025-02-12 13:26   ` kernel test robot
2025-02-12 13:57   ` kernel test robot
2025-02-14  9:24     ` Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 02/14] gpiolib: wrap gpio_chip::set() Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 03/14] gpiolib: rework the wrapper around gpio_chip::set_multiple() Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 04/14] gpiolib: introduce gpio_chip setters that return values Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 05/14] gpio: sim: use value returning setters Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 06/14] gpio: regmap: " Bartosz Golaszewski
2025-02-17  7:49   ` Michael Walle
2025-02-11 12:09 ` [PATCH 07/14] gpio: pca953x: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 08/14] gpio: mockup: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 09/14] gpio: aggregator: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 10/14] gpio: max77650: " Bartosz Golaszewski
2025-02-11 12:09 ` Bartosz Golaszewski [this message]
2025-02-11 12:09 ` [PATCH 12/14] gpio: latch: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 13/14] gpio: davinci: " Bartosz Golaszewski
2025-02-11 12:09 ` [PATCH 14/14] gpio: mvebu: " Bartosz Golaszewski
2025-02-14  9:56 ` [PATCH 00/14] gpiolib: indicate errors in value setters Linus Walleij
2025-02-14 10:14   ` Bartosz Golaszewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250211-gpio-set-retval-v1-11-52d3d613d7d3@linaro.org \
    --to=brgl@bgdev.pl \
    --cc=bamv2005@gmail.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=geert+renesas@glider.be \
    --cc=j-keerthy@ti.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=mwalle@kernel.org \
    --cc=ukleinek@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).