mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
pinctrl: tb10x: Simplify locking with guard()
Simplify error handling (less code in error case) over locks with guard(). Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
parent
708adef80c
commit
b339e1df67
1 changed files with 4 additions and 13 deletions
|
|
@ -607,7 +607,7 @@ static int tb10x_gpio_request_enable(struct pinctrl_dev *pctl,
|
|||
int muxmode = -1;
|
||||
int i;
|
||||
|
||||
mutex_lock(&state->mutex);
|
||||
guard(mutex)(&state->mutex);
|
||||
|
||||
/*
|
||||
* Figure out to which port the requested GPIO belongs and how to
|
||||
|
|
@ -642,7 +642,6 @@ static int tb10x_gpio_request_enable(struct pinctrl_dev *pctl,
|
|||
* Error: The requested pin is already
|
||||
* used for something else.
|
||||
*/
|
||||
mutex_unlock(&state->mutex);
|
||||
return -EBUSY;
|
||||
}
|
||||
break;
|
||||
|
|
@ -667,8 +666,6 @@ static int tb10x_gpio_request_enable(struct pinctrl_dev *pctl,
|
|||
if (muxport >= 0)
|
||||
tb10x_pinctrl_set_config(state, muxport, muxmode);
|
||||
|
||||
mutex_unlock(&state->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -695,34 +692,28 @@ static int tb10x_pctl_set_mux(struct pinctrl_dev *pctl,
|
|||
if (grp->port < 0)
|
||||
return 0;
|
||||
|
||||
mutex_lock(&state->mutex);
|
||||
guard(mutex)(&state->mutex);
|
||||
|
||||
/*
|
||||
* Check if the requested function is compatible with previously
|
||||
* requested functions.
|
||||
*/
|
||||
if (state->ports[grp->port].count
|
||||
&& (state->ports[grp->port].mode != grp->mode)) {
|
||||
mutex_unlock(&state->mutex);
|
||||
&& (state->ports[grp->port].mode != grp->mode))
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if the requested function is compatible with previously
|
||||
* requested GPIOs.
|
||||
*/
|
||||
for (i = 0; i < grp->pincnt; i++)
|
||||
if (test_bit(grp->pins[i], state->gpios)) {
|
||||
mutex_unlock(&state->mutex);
|
||||
if (test_bit(grp->pins[i], state->gpios))
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
tb10x_pinctrl_set_config(state, grp->port, grp->mode);
|
||||
|
||||
state->ports[grp->port].count++;
|
||||
|
||||
mutex_unlock(&state->mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue