On Thu, 24 Aug 2017 10:25:51 +0200 Ladislav Michl <ladis@xxxxxxxxxxxxxx> wrote: > There is no point writing ADS1015_CFG_REG when configuration > didn't change. Avoid that. > > Cc: Daniel Baluta <daniel.baluta@xxxxxxxxx> > Cc: Jonathan Cameron <jic23@xxxxxxxxxx> > Cc: Akinobu Mita <akinobu.mita@xxxxxxxxx> > Signed-off-by: Ladislav Michl <ladis@xxxxxxxxxxxxxx> Fair enough. Applied to the togreg branch of iio.git which will be pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > --- > drivers/iio/adc/ti-ads1015.c | 19 +++++++++---------- > 1 file changed, 9 insertions(+), 10 deletions(-) > > diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c > index 7838e39c790c..034e48566ab5 100644 > --- a/drivers/iio/adc/ti-ads1015.c > +++ b/drivers/iio/adc/ti-ads1015.c > @@ -240,7 +240,7 @@ static int ads1015_set_power_state(struct ads1015_data *data, bool on) > static > int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val) > { > - int ret, pga, dr, conv_time; > + int ret, pga, dr, dr_old, conv_time; > unsigned int old, mask, cfg; > > if (chan < 0 || chan >= ADS1015_CHANNELS) > @@ -256,17 +256,16 @@ int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val) > ADS1015_CFG_DR_MASK; > cfg = chan << ADS1015_CFG_MUX_SHIFT | pga << ADS1015_CFG_PGA_SHIFT | > dr << ADS1015_CFG_DR_SHIFT; > - > cfg = (old & ~mask) | (cfg & mask); > > - ret = regmap_write(data->regmap, ADS1015_CFG_REG, cfg); > - if (ret) > - return ret; > - > - if (old != cfg || data->conv_invalid) { > - int dr_old = (old & ADS1015_CFG_DR_MASK) >> > - ADS1015_CFG_DR_SHIFT; > - > + if (old != cfg) { > + ret = regmap_write(data->regmap, ADS1015_CFG_REG, cfg); > + if (ret) > + return ret; > + data->conv_invalid = true; > + } > + if (data->conv_invalid) { > + dr_old = (old & ADS1015_CFG_DR_MASK) >> ADS1015_CFG_DR_SHIFT; > conv_time = DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr_old]); > conv_time += DIV_ROUND_UP(USEC_PER_SEC, data->data_rate[dr]); > usleep_range(conv_time, conv_time + 1); -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html