diff --git a/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c b/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c index 9e86e7079718..aced8e7e920c 100644 --- a/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c +++ b/sound/soc/mediatek/mt8186/mt8186-afe-gpio.c @@ -201,7 +201,7 @@ int mt8186_afe_gpio_request(struct device *dev, bool enable, enum mt8186_afe_gpio sel; int ret = -EINVAL; - mutex_lock(&gpio_request_mutex); + guard(mutex)(&gpio_request_mutex); switch (dai) { case MT8186_DAI_ADDA: @@ -209,7 +209,7 @@ int mt8186_afe_gpio_request(struct device *dev, bool enable, ret = mt8186_afe_gpio_adda_ul(dev, enable); else ret = mt8186_afe_gpio_adda_dl(dev, enable); - goto unlock; + return ret; case MT8186_DAI_I2S_0: sel = enable ? MT8186_AFE_GPIO_I2S0_ON : MT8186_AFE_GPIO_I2S0_OFF; break; @@ -230,13 +230,8 @@ int mt8186_afe_gpio_request(struct device *dev, bool enable, break; default: dev_dbg(dev, "%s(), invalid dai %d\n", __func__, dai); - goto unlock; + return ret; } - ret = mt8186_afe_gpio_select(dev, sel); - -unlock: - mutex_unlock(&gpio_request_mutex); - - return ret; + return mt8186_afe_gpio_select(dev, sel); }