mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
gpio: imx-scu: use lock guards
Simplify the code by using lock guards from cleanup.h with the driver's mutex. Reviewed-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20250423-gpiochip-set-rv-gpio-part2-v1-2-b22245cde81a@linaro.org Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
57bbc60be4
commit
dd6d13abb4
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user