* The lock makes sure that either gpio-probe has completed
* or the gpio driver hasn't probed yet.
*/
- mutex_lock(&bank->deferred_lock);
- if (!gpio || !gpio->direction_output) {
- rc = rockchip_pinconf_defer_pin(bank, pin - bank->pin_base, param,
- arg);
- mutex_unlock(&bank->deferred_lock);
- if (rc)
- return rc;
-
- break;
+ scoped_guard(mutex, &bank->deferred_lock) {
+ if (!gpio || !gpio->direction_output) {
+ rc = rockchip_pinconf_defer_pin(bank,
+ pin - bank->pin_base,
+ param, arg);
+ if (rc)
+ return rc;
+ break;
+ }
}
- mutex_unlock(&bank->deferred_lock);
}
switch (param) {