From: Jonathan Cameron <jic23@kernel.org>
To: Akinobu Mita <akinobu.mita@gmail.com>
Cc: linux-iio@vger.kernel.org, Daniel Baluta <daniel.baluta@gmail.com>
Subject: Re: [PATCH v3 01/11] iio: adc: ti-ads1015: fix incorrect data rate setting update
Date: Sun, 30 Jul 2017 17:57:42 +0100 [thread overview]
Message-ID: <20170730175742.03c240fd@kernel.org> (raw)
In-Reply-To: <1501427575-31045-2-git-send-email-akinobu.mita@gmail.com>
On Mon, 31 Jul 2017 00:12:45 +0900
Akinobu Mita <akinobu.mita@gmail.com> wrote:
> The ti-ads1015 driver has eight iio voltage channels and each iio channel
> can hold own sampling frequency information.
>
> The ADS1015 device only have a single config register which contains an
> input multiplexer selection, PGA and data rate settings. So the driver
> should load the correct settings when the input multiplexer selection is
> changed.
>
> However, regardless of which channlel is currently selected, changing any
> iio channel's sampling frequency information immediately overwrites the
> current data rate setting in the config register.
>
> It breaks the current data rate setting if the different channel's sampling
> frequency information is changed because the data rate setting is not
> reloaded when the input multiplexer is switched.
>
> This removes the unexpected config register update and correctly load the
> data rate setting before getting adc result.
>
> Cc: Daniel Baluta <daniel.baluta@gmail.com>
> Cc: Jonathan Cameron <jic23@kernel.org>
> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Applied to the fixes-togreg branch of iio.git and marked
for stable.
The only minor thing that you could have done to make
this series even better would be to have figured out
appropriate Fixes: tags to make the job of the stable
maintainers a little easier.
Mostly I think it is a case of 'if it will apply
then it should' here though so I haven't dug into it
enough to tag them all.
Thanks,
Jonathan
> ---
> drivers/iio/adc/ti-ads1015.c | 27 ++++++++++-----------------
> 1 file changed, 10 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c
> index 884b8e46..443444c 100644
> --- a/drivers/iio/adc/ti-ads1015.c
> +++ b/drivers/iio/adc/ti-ads1015.c
> @@ -252,9 +252,11 @@ int ads1015_get_adc_result(struct ads1015_data *data, int chan, int *val)
>
> ret = regmap_update_bits_check(data->regmap, ADS1015_CFG_REG,
> ADS1015_CFG_MUX_MASK |
> - ADS1015_CFG_PGA_MASK,
> + ADS1015_CFG_PGA_MASK |
> + ADS1015_CFG_DR_MASK,
> chan << ADS1015_CFG_MUX_SHIFT |
> - pga << ADS1015_CFG_PGA_SHIFT,
> + pga << ADS1015_CFG_PGA_SHIFT |
> + dr << ADS1015_CFG_DR_SHIFT,
> &change);
> if (ret < 0)
> return ret;
> @@ -325,25 +327,16 @@ static int ads1015_set_scale(struct ads1015_data *data, int chan,
>
> static int ads1015_set_data_rate(struct ads1015_data *data, int chan, int rate)
> {
> - int i, ret, rindex = -1;
> + int i;
>
> - for (i = 0; i < ARRAY_SIZE(ads1015_data_rate); i++)
> + for (i = 0; i < ARRAY_SIZE(ads1015_data_rate); i++) {
> if (data->data_rate[i] == rate) {
> - rindex = i;
> - break;
> + data->channel_data[chan].data_rate = i;
> + return 0;
> }
> - if (rindex < 0)
> - return -EINVAL;
> -
> - ret = regmap_update_bits(data->regmap, ADS1015_CFG_REG,
> - ADS1015_CFG_DR_MASK,
> - rindex << ADS1015_CFG_DR_SHIFT);
> - if (ret < 0)
> - return ret;
> -
> - data->channel_data[chan].data_rate = rindex;
> + }
>
> - return 0;
> + return -EINVAL;
> }
>
> static int ads1015_read_raw(struct iio_dev *indio_dev,
next prev parent reply other threads:[~2017-07-30 16:57 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-30 15:12 [PATCH v3 00/11] iio: adc: ti-ads1015: fixes, cleanups, and threshold event support Akinobu Mita
2017-07-30 15:12 ` [PATCH v3 01/11] iio: adc: ti-ads1015: fix incorrect data rate setting update Akinobu Mita
2017-07-30 16:57 ` Jonathan Cameron [this message]
2017-07-30 15:12 ` [PATCH v3 02/11] iio: adc: ti-ads1015: fix scale information for ADS1115 Akinobu Mita
2017-07-30 16:58 ` Jonathan Cameron
2017-07-30 15:12 ` [PATCH v3 03/11] iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set Akinobu Mita
2017-07-30 16:59 ` Jonathan Cameron
2017-07-30 15:12 ` [PATCH v3 04/11] iio: adc: ti-ads1015: avoid getting stale result after runtime resume Akinobu Mita
2017-07-30 17:00 ` Jonathan Cameron
2017-07-30 15:12 ` [PATCH v3 05/11] iio: adc: ti-ads1015: don't return invalid value from buffer setup callbacks Akinobu Mita
2017-07-30 17:01 ` Jonathan Cameron
2017-07-30 15:12 ` [PATCH v3 06/11] iio: adc: ti-ads1015: add adequate wait time to get correct conversion Akinobu Mita
2017-07-30 17:03 ` Jonathan Cameron
2017-07-30 15:12 ` [PATCH v3 07/11] iio: adc: ti-ads1015: remove unnecessary config register update Akinobu Mita
2017-07-30 15:12 ` [PATCH v3 08/11] iio: adc: ti-ads1015: add helper to set conversion mode Akinobu Mita
2017-07-30 15:12 ` [PATCH v3 09/11] iio: adc: ti-ads1015: use devm_iio_triggered_buffer_setup Akinobu Mita
2017-07-30 15:12 ` [PATCH v3 10/11] iio: adc: ti-ads1015: use iio_device_claim_direct_mode() Akinobu Mita
2017-07-30 15:12 ` [PATCH v3 11/11] iio: adc: ti-ads1015: add threshold event support Akinobu Mita
2017-07-30 16:58 ` Jonathan Cameron
2017-09-30 17:32 ` Jonathan Cameron
2017-10-02 13:30 ` Akinobu Mita
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170730175742.03c240fd@kernel.org \
--to=jic23@kernel.org \
--cc=akinobu.mita@gmail.com \
--cc=daniel.baluta@gmail.com \
--cc=linux-iio@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.