All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Piyush Patle <piyushpatle228@gmail.com>
Cc: ak@it-klinger.de, jic23@kernel.org, dlechner@baylibre.com,
	nuno.sa@analog.com, andy@kernel.org, robh@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/7] iio: adc: hx711: move scale computation to per-device storage
Date: Mon, 27 Apr 2026 17:02:14 +0300	[thread overview]
Message-ID: <ae9sZonxK7HTXsUT@ashevche-desk.local> (raw)
In-Reply-To: <20260427100950.33936-3-piyushpatle228@gmail.com>

On Mon, Apr 27, 2026 at 03:39:33PM +0530, Piyush Patle wrote:
> The gain-to-scale table hx711_gain_to_scale[] is a global array whose
> .scale fields are overwritten in hx711_probe() using the AVDD voltage
> read at probe time. When two HX711 sensors are connected to supplies at
> different voltages, the second probe call overwrites the scale values
> computed for the first sensor, silently corrupting its readings.
> 
> Fix this by removing the .scale field from the global table, making the
> table const, and adding a per-instance gain_scale[] array to hx711_data.
> Populate gain_scale[] in hx711_probe() using the device's own AVDD
> regulator voltage. Update hx711_get_gain_to_scale() and
> hx711_get_scale_to_gain() to take the per-instance array as a parameter,
> and update hx711_scale_available_show() to retrieve it via iio_priv().
> 
> No functional change for single-sensor configurations.

...

>  /*
>   * .scale depends on AVDD which in turn is known as soon as the regulator
> - * is available
> - * therefore we set .scale in hx711_probe()
> + * is available; it is stored per device in hx711_data.gain_scale[]
>   *
>   * channel A in documentation is channel 0 in source code
>   * channel B in documentation is channel 1 in source code
>   */
> -static struct hx711_gain_to_scale hx711_gain_to_scale[HX711_GAIN_MAX] = {
> -	{ 128, 1, 0, 0 },
> -	{  32, 2, 0, 1 },
> -	{  64, 3, 0, 0 }
> +static const struct hx711_gain_to_scale hx711_gain_to_scale[HX711_GAIN_MAX] = {
> +	{ 128, 1, 0 },
> +	{  32, 2, 1 },
> +	{  64, 3, 0 }

I would leave trailing comma, as it is semantically is not the terminator entry.

>  };

...

>  {
>  	struct iio_dev_attr *iio_attr = to_iio_dev_attr(attr);
>  	int channel = iio_attr->address;
> +	struct hx711_data *hx711_data =
> +				iio_priv(dev_to_iio_dev(dev));

First of all, please preserve the reversed xmas tree order.
Second, it's more than enough room to have it a single line.

	struct hx711_data *hx711_data = iio_priv(dev_to_iio_dev(dev));

>  	int i, len = 0;

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2026-04-27 14:02 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-27 10:09 [PATCH v4 0/7] iio: adc: hx711: add HX710B support Piyush Patle
2026-04-27 10:09 ` [PATCH v4 1/7] dt-bindings: iio: adc: avia-hx711: add avia,hx710b compatible Piyush Patle
2026-04-27 15:29   ` David Lechner
2026-04-27 22:36     ` Piyush Patle
2026-04-28 17:49   ` Jonathan Cameron
2026-04-27 10:09 ` [PATCH v4 2/7] iio: adc: hx711: move scale computation to per-device storage Piyush Patle
2026-04-27 14:02   ` Andy Shevchenko [this message]
2026-04-27 22:38     ` Piyush Patle
2026-04-28 17:52       ` Jonathan Cameron
2026-04-27 10:09 ` [PATCH v4 3/7] iio: adc: hx711: update Kconfig, module description and file header Piyush Patle
2026-04-27 10:26   ` Joshua Crofts
2026-04-27 13:46     ` Andy Shevchenko
2026-04-27 13:49       ` Joshua Crofts
2026-04-28 17:54         ` Jonathan Cameron
2026-04-28 18:03           ` Joshua Crofts
2026-04-29  9:57           ` Andy Shevchenko
2026-04-29 10:27             ` Jonathan Cameron
2026-04-27 13:58   ` Andy Shevchenko
2026-04-27 14:19     ` Andy Shevchenko
2026-04-27 10:09 ` [PATCH v4 4/7] iio: adc: hx711: introduce hx711_chip_info per-variant structure Piyush Patle
2026-04-27 14:08   ` Andy Shevchenko
2026-04-27 14:14     ` Andy Shevchenko
2026-04-27 22:47       ` Piyush Patle
2026-04-28 17:57         ` Jonathan Cameron
2026-04-27 22:44     ` Piyush Patle
2026-04-27 10:09 ` [PATCH v4 5/7] iio: adc: hx711: pass trailing pulse count into hx711_read() Piyush Patle
2026-04-27 14:12   ` Andy Shevchenko
2026-04-27 22:49     ` Piyush Patle
2026-04-27 10:09 ` [PATCH v4 6/7] iio: adc: hx711: pass iio_chan_spec to hx711_reset_read() Piyush Patle
2026-04-27 14:16   ` Andy Shevchenko
2026-04-27 10:09 ` [PATCH v4 7/7] iio: adc: hx711: add support for HX710B Piyush Patle
2026-04-27 14:34   ` Andy Shevchenko
2026-04-27 23:06     ` Piyush Patle

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=ae9sZonxK7HTXsUT@ashevche-desk.local \
    --to=andriy.shevchenko@intel.com \
    --cc=ak@it-klinger.de \
    --cc=andy@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=piyushpatle228@gmail.com \
    --cc=robh@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.