mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
gpio: latch: use lock guards
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. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Link: https://lore.kernel.org/r/20250220-gpio-set-retval-v2-12-bc4cfd38dae3@linaro.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
97c9b59f66
commit
14628b6927
|
|
@ -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>
|
||||
|
|
@ -94,24 +95,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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user