]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: xilinx-xadc: Fix ADC-B powerdown
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 3 Apr 2020 13:27:13 +0000 (15:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 2 May 2020 15:24:19 +0000 (17:24 +0200)
commit e44ec7794d88f918805d700240211a9ec05ed89d upstream.

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@metafoo.de>
Fixes: bdc8cda1d010 ("iio:adc: Add Xilinx XADC driver")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/adc/xilinx-xadc-core.c

index e89711b30ae8f01b8fce33a8e8eb781fef238e3b..744f8ffe6b8d136a65748d52bc2a662592572b6a 100644 (file)
@@ -709,13 +709,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;
        }