On Fri, 3 Apr 2020 15:27:13 +0200 Lars-Peter Clausen <lars@xxxxxxxxxx> wrote: > The check for shutting down the second ADC is inverted. This causes it to > be powered down when it should be enabled. As a result channels that are > supposed to be handled by the second ADC return invalid conversion results. > > Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> Fixes tag? Definitely sounds like something we should be backporting! Jonathan > --- > drivers/iio/adc/xilinx-xadc-core.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c > index 2d6505a66511..4fcf1729341f 100644 > --- a/drivers/iio/adc/xilinx-xadc-core.c > +++ b/drivers/iio/adc/xilinx-xadc-core.c > @@ -722,13 +722,14 @@ static int xadc_power_adc_b(struct xadc *xadc, unsigned int seq_mode) > { > uint16_t val; > > + /* Powerdown the ADC-B when it is not needed. */ > switch (seq_mode) { > case XADC_CONF1_SEQ_SIMULTANEOUS: > case XADC_CONF1_SEQ_INDEPENDENT: > - val = XADC_CONF2_PD_ADC_B; > + val = 0; > break; > default: > - val = 0; > + val = XADC_CONF2_PD_ADC_B; > break; > } >