aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad Dogaru <vlad.dogaru@intel.com>2015-06-30 07:20:59 -0400
committerJonathan Cameron <jic23@kernel.org>2015-07-19 06:48:15 -0400
commit0d1462de0b24fd09284411a3753f24a3d7c67577 (patch)
tree000a2ff347c33cb7cb498ba602af5d4fa1d245e2
parent498adaeb898c4eff190d598799bd9b0d607ce051 (diff)
iio: sx9500: fix bug in compensation code
The initial compensation was mistakingly toggling an extra bit in the control register. Fix this and make sure it's less likely to happen by introducing an additional macro. Reported-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Vlad Dogaru <vlad.dogaru@intel.com> Acked-by: Hartmut Knaack <knaack.h@gmx.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
-rw-r--r--drivers/iio/proximity/sx9500.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
index 21eaa167a784..d260509d6000 100644
--- a/drivers/iio/proximity/sx9500.c
+++ b/drivers/iio/proximity/sx9500.c
@@ -80,6 +80,7 @@
80#define SX9500_COMPSTAT_MASK GENMASK(3, 0) 80#define SX9500_COMPSTAT_MASK GENMASK(3, 0)
81 81
82#define SX9500_NUM_CHANNELS 4 82#define SX9500_NUM_CHANNELS 4
83#define SX9500_CHAN_MASK GENMASK(SX9500_NUM_CHANNELS - 1, 0)
83 84
84struct sx9500_data { 85struct sx9500_data {
85 struct mutex mutex; 86 struct mutex mutex;
@@ -802,8 +803,7 @@ static int sx9500_init_compensation(struct iio_dev *indio_dev)
802 unsigned int val; 803 unsigned int val;
803 804
804 ret = regmap_update_bits(data->regmap, SX9500_REG_PROX_CTRL0, 805 ret = regmap_update_bits(data->regmap, SX9500_REG_PROX_CTRL0,
805 GENMASK(SX9500_NUM_CHANNELS, 0), 806 SX9500_CHAN_MASK, SX9500_CHAN_MASK);
806 GENMASK(SX9500_NUM_CHANNELS, 0));
807 if (ret < 0) 807 if (ret < 0)
808 return ret; 808 return ret;
809 809
@@ -823,7 +823,7 @@ static int sx9500_init_compensation(struct iio_dev *indio_dev)
823 823
824out: 824out:
825 regmap_update_bits(data->regmap, SX9500_REG_PROX_CTRL0, 825 regmap_update_bits(data->regmap, SX9500_REG_PROX_CTRL0,
826 GENMASK(SX9500_NUM_CHANNELS, 0), 0); 826 SX9500_CHAN_MASK, 0);
827 return ret; 827 return ret;
828} 828}
829 829