Message ID | 20220620154738.801706-2-olivier.moysan@foss.st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: adc: stm32-adc: add checks on adc state | expand |
On 6/20/22 17:47, Olivier Moysan wrote: > From ADC reference manual the software is allowed to write the > control bit ADDIS of the ADC_CR register only if the ADC is enabled. > Return immediately from stm32h7_adc_disable() if ADC is already disabled. > > Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com> Hi Olivier, You can add my: Reviewed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com> Thanks, Fabrice > --- > drivers/iio/adc/stm32-adc.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c > index a68ecbda6480..80e333f65ddd 100644 > --- a/drivers/iio/adc/stm32-adc.c > +++ b/drivers/iio/adc/stm32-adc.c > @@ -876,6 +876,9 @@ static void stm32h7_adc_disable(struct iio_dev *indio_dev) > int ret; > u32 val; > > + if (!(stm32_adc_readl(adc, STM32H7_ADC_CR) & STM32H7_ADEN)) > + return; > + > /* Disable ADC and wait until it's effectively disabled */ > stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADDIS); > ret = stm32_adc_readl_poll_timeout(STM32H7_ADC_CR, val,
diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index a68ecbda6480..80e333f65ddd 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -876,6 +876,9 @@ static void stm32h7_adc_disable(struct iio_dev *indio_dev) int ret; u32 val; + if (!(stm32_adc_readl(adc, STM32H7_ADC_CR) & STM32H7_ADEN)) + return; + /* Disable ADC and wait until it's effectively disabled */ stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADDIS); ret = stm32_adc_readl_poll_timeout(STM32H7_ADC_CR, val,
From ADC reference manual the software is allowed to write the control bit ADDIS of the ADC_CR register only if the ADC is enabled. Return immediately from stm32h7_adc_disable() if ADC is already disabled. Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com> --- drivers/iio/adc/stm32-adc.c | 3 +++ 1 file changed, 3 insertions(+)