| From efd597b2839a9895e8a98fcb0b76d2f545802cd4 Mon Sep 17 00:00:00 2001 |
| From: Lars-Peter Clausen <lars@metafoo.de> |
| Date: Wed, 9 Dec 2020 11:46:49 +0100 |
| Subject: iio: ad5504: Fix setting power-down state |
| |
| From: Lars-Peter Clausen <lars@metafoo.de> |
| |
| commit efd597b2839a9895e8a98fcb0b76d2f545802cd4 upstream. |
| |
| The power-down mask of the ad5504 is actually a power-up mask. Meaning if |
| a bit is set the corresponding channel is powered up and if it is not set |
| the channel is powered down. |
| |
| The driver currently has this the wrong way around, resulting in the |
| channel being powered up when requested to be powered down and vice versa. |
| |
| Fixes: 3bbbf150ffde ("staging:iio:dac:ad5504: Use strtobool for boolean values") |
| Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> |
| Acked-by: Alexandru Ardelean <alexandru.ardelean@analog.com> |
| Link: https://lore.kernel.org/r/20201209104649.5794-1-lars@metafoo.de |
| 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/dac/ad5504.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/iio/dac/ad5504.c |
| +++ b/drivers/iio/dac/ad5504.c |
| @@ -189,9 +189,9 @@ static ssize_t ad5504_write_dac_powerdow |
| return ret; |
| |
| if (pwr_down) |
| - st->pwr_down_mask |= (1 << chan->channel); |
| - else |
| st->pwr_down_mask &= ~(1 << chan->channel); |
| + else |
| + st->pwr_down_mask |= (1 << chan->channel); |
| |
| ret = ad5504_spi_write(st, AD5504_ADDR_CTRL, |
| AD5504_DAC_PWRDWN_MODE(st->pwr_down_mode) | |