diff options
Diffstat (limited to 'drivers/iio/adc/stm32-adc.c')
| -rw-r--r-- | drivers/iio/adc/stm32-adc.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index 6245434f8377..897166d9e45c 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -1117,6 +1117,7 @@ static void stm32h7_adc_unprepare(struct iio_dev *indio_dev)  {  	struct stm32_adc *adc = iio_priv(indio_dev); +	stm32_adc_writel(adc, STM32H7_ADC_PCSEL, 0);  	stm32h7_adc_disable(indio_dev);  	stm32_adc_int_ch_disable(adc);  	stm32h7_adc_enter_pwr_down(adc); @@ -1986,7 +1987,7 @@ static int stm32_adc_populate_int_ch(struct iio_dev *indio_dev, const char *ch_n  			/* Get calibration data for vrefint channel */  			ret = nvmem_cell_read_u16(&indio_dev->dev, "vrefint", &vrefint);  			if (ret && ret != -ENOENT) { -				return dev_err_probe(&indio_dev->dev, ret, +				return dev_err_probe(indio_dev->dev.parent, ret,  						     "nvmem access error\n");  			}  			if (ret == -ENOENT) @@ -2024,7 +2025,8 @@ static int stm32_adc_generic_chan_init(struct iio_dev *indio_dev,  			if (strlen(name) >= STM32_ADC_CH_SZ) {  				dev_err(&indio_dev->dev, "Label %s exceeds %d characters\n",  					name, STM32_ADC_CH_SZ); -				return -EINVAL; +				ret = -EINVAL; +				goto err;  			}  			strncpy(adc->chan_name[val], name, STM32_ADC_CH_SZ);  			ret = stm32_adc_populate_int_ch(indio_dev, name, val);  |