summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>2026-01-18 19:09:29 +0100
committerLinus Walleij <linusw@kernel.org>2026-01-19 01:11:47 +0100
commit708adef80cb19152192df1999341542328596da5 (patch)
tree1dfd9cb34bc8d6775083ac9d576762899e8632e5 /drivers
parent6fe3b96b051d0ce4cbc0b76008fef0653f2e21ab (diff)
pinctrl: microchip-sgpio: Simplify locking with guard()
Simplify error handling (less gotos) over locks with guard(). Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pinctrl/pinctrl-microchip-sgpio.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/pinctrl/pinctrl-microchip-sgpio.c b/drivers/pinctrl/pinctrl-microchip-sgpio.c
index b6363f3cdce9..7a6cb5f502b0 100644
--- a/drivers/pinctrl/pinctrl-microchip-sgpio.c
+++ b/drivers/pinctrl/pinctrl-microchip-sgpio.c
@@ -264,19 +264,17 @@ static int sgpio_single_shot(struct sgpio_priv *priv)
* setting.
* After the manual burst, reenable the auto repeat mode again.
*/
- mutex_lock(&priv->poll_lock);
+ guard(mutex)(&priv->poll_lock);
ret = regmap_update_bits(priv->regs, addr, single_shot | auto_repeat,
single_shot);
if (ret)
- goto out;
+ return ret;
ret = regmap_read_poll_timeout(priv->regs, addr, ctrl,
!(ctrl & single_shot), 100, 60000);
/* reenable auto repeat mode even if there was an error */
ret2 = regmap_update_bits(priv->regs, addr, auto_repeat, auto_repeat);
-out:
- mutex_unlock(&priv->poll_lock);
return ret ?: ret2;
}