diff options
| -rw-r--r-- | drivers/iio/dac/stm32-dac.c | 19 | 
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/iio/dac/stm32-dac.c b/drivers/iio/dac/stm32-dac.c index 344388338d9b..b860e18d52a1 100644 --- a/drivers/iio/dac/stm32-dac.c +++ b/drivers/iio/dac/stm32-dac.c @@ -82,9 +82,11 @@ static int stm32_dac_set_enable_state(struct iio_dev *indio_dev, int ch,  	ret = regmap_update_bits(dac->common->regmap, STM32_DAC_CR, msk, en);  	mutex_unlock(&dac->lock); -	if (ret < 0) { +	if (ret) {  		dev_err(&indio_dev->dev, "%s failed\n", str_enable_disable(en)); -		goto err_put_pm; +		if (enable) +			pm_runtime_put_autosuspend(dev); +		return ret;  	}  	/* @@ -95,20 +97,10 @@ static int stm32_dac_set_enable_state(struct iio_dev *indio_dev, int ch,  	if (en && dac->common->hfsel)  		udelay(1); -	if (!enable) { -		pm_runtime_mark_last_busy(dev); +	if (!enable)  		pm_runtime_put_autosuspend(dev); -	}  	return 0; - -err_put_pm: -	if (enable) { -		pm_runtime_mark_last_busy(dev); -		pm_runtime_put_autosuspend(dev); -	} - -	return ret;  }  static int stm32_dac_get_value(struct stm32_dac *dac, int channel, int *val) @@ -349,7 +341,6 @@ static int stm32_dac_probe(struct platform_device *pdev)  	if (ret)  		goto err_pm_put; -	pm_runtime_mark_last_busy(dev);  	pm_runtime_put_autosuspend(dev);  	return 0;  | 
