All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: George Stark <gnstark@sberdevices.ru>
Cc: jic23@kernel.org, lars@metafoo.de, neil.armstrong@linaro.org,
	khilman@baylibre.com, jbrunet@baylibre.com,
	martin.blumenstingl@googlemail.com, nuno.sa@analog.com,
	linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org,
	kernel@sberdevices.ru
Subject: Re: [PATCH v2] meson saradc: add iio device attrib to switch channel 7 mux
Date: Sun, 28 May 2023 13:46:36 +0300	[thread overview]
Message-ID: <ZHMxDHPBWQOJSuaZ@smile.fi.intel.com> (raw)
In-Reply-To: <20230527214854.126517-1-gnstark@sberdevices.ru>

On Sun, May 28, 2023 at 12:48:54AM +0300, George Stark wrote:
> Patch adds two sysfs nodes: chan7_mux to set mux state
> and chan7_mux_available to show available mux states.
> Mux can be used to debug and calibrate adc by
> switching and measuring well-known inputs like GND, Vdd etc.

Thank you for an update, my comments below.

...

> ---

Missing changelog, what has been done in v2, how it's different to v1.

>  drivers/iio/adc/meson_saradc.c | 65 ++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)

...

> +static const char * const chan7_vol[] = {
> +	"gnd",
> +	"vdd/4",
> +	"vdd/2",
> +	"vdd*3/4",
> +	"vdd",
> +	"ch7_input",
> +};
> +
> +static ssize_t chan7_mux_show(struct device *dev, struct device_attribute *attr,
> +			      char *buf)
> +{
> +	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +	struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
> +	unsigned int index = priv->chan7_mux_sel;
> +
> +	if (index >= ARRAY_SIZE(chan7_vol))
> +		index = ARRAY_SIZE(chan7_vol) - 1;

I think this is incorrect and prone to error in the future in case this array
will be extended. What I would expect is to return something like "unknown".

> +	return sysfs_emit(buf, "%s\n", chan7_vol[index]);
> +}
> +
> +static ssize_t chan7_mux_store(struct device *dev,
> +			       struct device_attribute *attr,
> +			       const char *buf, size_t count)
> +{
> +	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +	int i;
> +
> +	i = sysfs_match_string(chan7_vol, buf);
> +	if (i < 0)

> +		return -EINVAL;

Do not shadow the error code if it's not justified.

		return i;

> +	meson_sar_adc_set_chan7_mux(indio_dev, i);
> +	return count;
> +}

> +

Redundant blank line.

> +static IIO_DEVICE_ATTR_RW(chan7_mux, -1);
> +
> +static ssize_t chan7_mux_available_show(struct device *dev, struct device_attribute *attr,
> +			      char *buf)
> +{
> +	int i, len = 0;
> +
> +	for (i = 0; i < ARRAY_SIZE(chan7_vol); i++)
> +		len += sysfs_emit_at(buf, len, "%s ", chan7_vol[i]);
> +
> +	return len;
> +}

> +

Ditto.

> +static IIO_DEVICE_ATTR_RO(chan7_mux_available, -1);

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: George Stark <gnstark@sberdevices.ru>
Cc: jic23@kernel.org, lars@metafoo.de, neil.armstrong@linaro.org,
	khilman@baylibre.com, jbrunet@baylibre.com,
	martin.blumenstingl@googlemail.com, nuno.sa@analog.com,
	linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org,
	kernel@sberdevices.ru
Subject: Re: [PATCH v2] meson saradc: add iio device attrib to switch channel 7 mux
Date: Sun, 28 May 2023 13:46:36 +0300	[thread overview]
Message-ID: <ZHMxDHPBWQOJSuaZ@smile.fi.intel.com> (raw)
In-Reply-To: <20230527214854.126517-1-gnstark@sberdevices.ru>

On Sun, May 28, 2023 at 12:48:54AM +0300, George Stark wrote:
> Patch adds two sysfs nodes: chan7_mux to set mux state
> and chan7_mux_available to show available mux states.
> Mux can be used to debug and calibrate adc by
> switching and measuring well-known inputs like GND, Vdd etc.

Thank you for an update, my comments below.

...

> ---

Missing changelog, what has been done in v2, how it's different to v1.

>  drivers/iio/adc/meson_saradc.c | 65 ++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)

...

> +static const char * const chan7_vol[] = {
> +	"gnd",
> +	"vdd/4",
> +	"vdd/2",
> +	"vdd*3/4",
> +	"vdd",
> +	"ch7_input",
> +};
> +
> +static ssize_t chan7_mux_show(struct device *dev, struct device_attribute *attr,
> +			      char *buf)
> +{
> +	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +	struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
> +	unsigned int index = priv->chan7_mux_sel;
> +
> +	if (index >= ARRAY_SIZE(chan7_vol))
> +		index = ARRAY_SIZE(chan7_vol) - 1;

I think this is incorrect and prone to error in the future in case this array
will be extended. What I would expect is to return something like "unknown".

> +	return sysfs_emit(buf, "%s\n", chan7_vol[index]);
> +}
> +
> +static ssize_t chan7_mux_store(struct device *dev,
> +			       struct device_attribute *attr,
> +			       const char *buf, size_t count)
> +{
> +	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +	int i;
> +
> +	i = sysfs_match_string(chan7_vol, buf);
> +	if (i < 0)

> +		return -EINVAL;

Do not shadow the error code if it's not justified.

		return i;

> +	meson_sar_adc_set_chan7_mux(indio_dev, i);
> +	return count;
> +}

> +

Redundant blank line.

> +static IIO_DEVICE_ATTR_RW(chan7_mux, -1);
> +
> +static ssize_t chan7_mux_available_show(struct device *dev, struct device_attribute *attr,
> +			      char *buf)
> +{
> +	int i, len = 0;
> +
> +	for (i = 0; i < ARRAY_SIZE(chan7_vol); i++)
> +		len += sysfs_emit_at(buf, len, "%s ", chan7_vol[i]);
> +
> +	return len;
> +}

> +

Ditto.

> +static IIO_DEVICE_ATTR_RO(chan7_mux_available, -1);

-- 
With Best Regards,
Andy Shevchenko



WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: George Stark <gnstark@sberdevices.ru>
Cc: jic23@kernel.org, lars@metafoo.de, neil.armstrong@linaro.org,
	khilman@baylibre.com, jbrunet@baylibre.com,
	martin.blumenstingl@googlemail.com, nuno.sa@analog.com,
	linux-iio@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org,
	kernel@sberdevices.ru
Subject: Re: [PATCH v2] meson saradc: add iio device attrib to switch channel 7 mux
Date: Sun, 28 May 2023 13:46:36 +0300	[thread overview]
Message-ID: <ZHMxDHPBWQOJSuaZ@smile.fi.intel.com> (raw)
In-Reply-To: <20230527214854.126517-1-gnstark@sberdevices.ru>

On Sun, May 28, 2023 at 12:48:54AM +0300, George Stark wrote:
> Patch adds two sysfs nodes: chan7_mux to set mux state
> and chan7_mux_available to show available mux states.
> Mux can be used to debug and calibrate adc by
> switching and measuring well-known inputs like GND, Vdd etc.

Thank you for an update, my comments below.

...

> ---

Missing changelog, what has been done in v2, how it's different to v1.

>  drivers/iio/adc/meson_saradc.c | 65 ++++++++++++++++++++++++++++++++++
>  1 file changed, 65 insertions(+)

...

> +static const char * const chan7_vol[] = {
> +	"gnd",
> +	"vdd/4",
> +	"vdd/2",
> +	"vdd*3/4",
> +	"vdd",
> +	"ch7_input",
> +};
> +
> +static ssize_t chan7_mux_show(struct device *dev, struct device_attribute *attr,
> +			      char *buf)
> +{
> +	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +	struct meson_sar_adc_priv *priv = iio_priv(indio_dev);
> +	unsigned int index = priv->chan7_mux_sel;
> +
> +	if (index >= ARRAY_SIZE(chan7_vol))
> +		index = ARRAY_SIZE(chan7_vol) - 1;

I think this is incorrect and prone to error in the future in case this array
will be extended. What I would expect is to return something like "unknown".

> +	return sysfs_emit(buf, "%s\n", chan7_vol[index]);
> +}
> +
> +static ssize_t chan7_mux_store(struct device *dev,
> +			       struct device_attribute *attr,
> +			       const char *buf, size_t count)
> +{
> +	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> +	int i;
> +
> +	i = sysfs_match_string(chan7_vol, buf);
> +	if (i < 0)

> +		return -EINVAL;

Do not shadow the error code if it's not justified.

		return i;

> +	meson_sar_adc_set_chan7_mux(indio_dev, i);
> +	return count;
> +}

> +

Redundant blank line.

> +static IIO_DEVICE_ATTR_RW(chan7_mux, -1);
> +
> +static ssize_t chan7_mux_available_show(struct device *dev, struct device_attribute *attr,
> +			      char *buf)
> +{
> +	int i, len = 0;
> +
> +	for (i = 0; i < ARRAY_SIZE(chan7_vol); i++)
> +		len += sysfs_emit_at(buf, len, "%s ", chan7_vol[i]);
> +
> +	return len;
> +}

> +

Ditto.

> +static IIO_DEVICE_ATTR_RO(chan7_mux_available, -1);

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-05-28 10:47 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-27 21:48 [PATCH v2] meson saradc: add iio device attrib to switch channel 7 mux George Stark
2023-05-27 21:48 ` George Stark
2023-05-27 21:48 ` George Stark
2023-05-28 10:46 ` Andy Shevchenko [this message]
2023-05-28 10:46   ` Andy Shevchenko
2023-05-28 10:46   ` Andy Shevchenko
2023-05-28 10:55   ` Andy Shevchenko
2023-05-28 10:55     ` Andy Shevchenko
2023-05-28 10:55     ` Andy Shevchenko
2023-05-28 11:00     ` Andy Shevchenko
2023-05-28 11:00       ` Andy Shevchenko
2023-05-28 11:00       ` Andy Shevchenko
2023-05-28 15:12     ` Jonathan Cameron
2023-05-28 15:12       ` Jonathan Cameron
2023-05-28 15:12       ` Jonathan Cameron
2023-05-28 22:31   ` George Stark
2023-05-28 22:31     ` George Stark
2023-05-28 22:31     ` George Stark
2023-05-29 23:32     ` andy.shevchenko
2023-05-29 23:32       ` andy.shevchenko
2023-05-29 23:32       ` andy.shevchenko
2023-05-28 15:11 ` Jonathan Cameron
2023-05-28 15:11   ` Jonathan Cameron
2023-05-28 15:11   ` Jonathan Cameron
2023-05-28 21:52   ` George Stark
2023-05-28 21:52     ` George Stark
2023-05-28 21:52     ` George Stark
2023-05-29 20:04     ` Martin Blumenstingl
2023-05-29 20:04       ` Martin Blumenstingl
2023-05-29 20:04       ` Martin Blumenstingl
2023-06-04 12:52       ` Jonathan Cameron
2023-06-04 12:52         ` Jonathan Cameron
2023-06-04 12:52         ` 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=ZHMxDHPBWQOJSuaZ@smile.fi.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=gnstark@sberdevices.ru \
    --cc=jbrunet@baylibre.com \
    --cc=jic23@kernel.org \
    --cc=kernel@sberdevices.ru \
    --cc=khilman@baylibre.com \
    --cc=lars@metafoo.de \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=neil.armstrong@linaro.org \
    --cc=nuno.sa@analog.com \
    /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.