All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Andreas Klinger <ak@it-klinger.de>
Cc: knaack.h@gmx.de, lars@metafoo.de, pmeerw@pmeerw.net,
	linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 2/3] iio: adc: hx711: optimize performance in read cycle
Date: Sun, 15 Sep 2019 13:59:48 +0100	[thread overview]
Message-ID: <20190915135948.609aba98@archlinux> (raw)
In-Reply-To: <20190909123746.lvd2q3dwgaksktuy@arbad>

On Mon, 9 Sep 2019 14:37:48 +0200
Andreas Klinger <ak@it-klinger.de> wrote:

> Set gain in hx711_reset() to its default value after a reset cycle. This
> omits one precautionary read cycle, because the read is performed in
> hx711_set_gain_for_channel() anyway if gain has changed.
> 
> Check for DOUT low and if its high wait some time if it goes down
> instead of doing a blind reset cycle when DOUT is not down.
> 
> This is a performance optimization which allows to query the sensor with
> a higher frequency.
> 
> Signed-off-by: Andreas Klinger <ak@it-klinger.de>
Hi Andreas,

This one seems to have a slightly non trivial interaction with patch 1
so will have to wait until the fixes-togreg branch works it's way back
around to the upstream for the togreg branch.   Give me a poke if I seem
to have lost it!

Thanks,

Jonathan

> ---
>  drivers/iio/adc/hx711.c | 23 +++++------------------
>  1 file changed, 5 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
> index 0678964dbd21..c8686558429b 100644
> --- a/drivers/iio/adc/hx711.c
> +++ b/drivers/iio/adc/hx711.c
> @@ -23,6 +23,7 @@
>  
>  /* gain to pulse and scale conversion */
>  #define HX711_GAIN_MAX		3
> +#define HX711_RESET_GAIN	128
>  
>  struct hx711_gain_to_scale {
>  	int			gain;
> @@ -100,7 +101,6 @@ struct hx711_data {
>  
>  static int hx711_cycle(struct hx711_data *hx711_data)
>  {
> -	int val;
>  	unsigned long flags;
>  
>  	/*
> @@ -186,8 +186,7 @@ static int hx711_wait_for_ready(struct hx711_data *hx711_data)
>  
>  static int hx711_reset(struct hx711_data *hx711_data)
>  {
> -	int ret;
> -	int val = gpiod_get_value(hx711_data->gpiod_dout);
> +	int val = hx711_wait_for_ready(hx711_data);
>  
>  	if (val) {
>  		/*
> @@ -203,22 +202,10 @@ static int hx711_reset(struct hx711_data *hx711_data)
>  		msleep(10);
>  		gpiod_set_value(hx711_data->gpiod_pd_sck, 0);
>  
> -		ret = hx711_wait_for_ready(hx711_data);
> -		if (ret)
> -			return ret;
> -		/*
> -		 * after a reset the gain is 128 so we do a dummy read
> -		 * to set the gain for the next read
> -		 */
> -		ret = hx711_read(hx711_data);
> -		if (ret < 0)
> -			return ret;
> -
> -		/*
> -		 * after a dummy read we need to wait vor readiness
> -		 * for not mixing gain pulses with the clock
> -		 */
>  		val = hx711_wait_for_ready(hx711_data);
> +
> +		/* after a reset the gain is 128 */
> +		hx711_data->gain_set = HX711_RESET_GAIN;
>  	}
>  
>  	return val;


  reply	other threads:[~2019-09-15 12:59 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-09 12:37 [PATCH v2 2/3] iio: adc: hx711: optimize performance in read cycle Andreas Klinger
2019-09-15 12:59 ` Jonathan Cameron [this message]
2019-10-22 11:58   ` Jonathan Cameron

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=20190915135948.609aba98@archlinux \
    --to=jic23@kernel.org \
    --cc=ak@it-klinger.de \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmeerw@pmeerw.net \
    /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.