* [PATCH] staging: iio: adc: ad7816: use sysfs_streq() instead of strcmp()
@ 2026-03-30 7:48 Md. Mahmudul Hasan Mabud
2026-03-30 10:09 ` Andy Shevchenko
0 siblings, 1 reply; 3+ messages in thread
From: Md. Mahmudul Hasan Mabud @ 2026-03-30 7:48 UTC (permalink / raw)
To: lars, Michael.Hennerich, jic23, gregkh
Cc: dlechner, nuno.sa, andy, linux-iio, linux-staging, linux-kernel,
Md. Mahmudul Hasan Mabud
Use sysfs_streq() to compare the input buffer with the mode strings.
This is more robust as it ignores trailing newlines, making it safer
for sysfs store functions.
Signed-off-by: Md. Mahmudul Hasan Mabud <mdmahmudulhasan1511@gmail.com>
---
drivers/staging/iio/adc/ad7816.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c
index 172acf135..c2544415e 100644
--- a/drivers/staging/iio/adc/ad7816.c
+++ b/drivers/staging/iio/adc/ad7816.c
@@ -136,7 +136,7 @@ static ssize_t ad7816_store_mode(struct device *dev,
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct ad7816_chip_info *chip = iio_priv(indio_dev);
- if (strcmp(buf, "full") == 0) {
+ if (sysfs_streq(buf, "full")) {
gpiod_set_value(chip->rdwr_pin, 1);
chip->mode = AD7816_FULL;
} else {
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] staging: iio: adc: ad7816: use sysfs_streq() instead of strcmp()
2026-03-30 7:48 [PATCH] staging: iio: adc: ad7816: use sysfs_streq() instead of strcmp() Md. Mahmudul Hasan Mabud
@ 2026-03-30 10:09 ` Andy Shevchenko
2026-04-12 18:42 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: Andy Shevchenko @ 2026-03-30 10:09 UTC (permalink / raw)
To: Md. Mahmudul Hasan Mabud
Cc: lars, Michael.Hennerich, jic23, gregkh, dlechner, nuno.sa, andy,
linux-iio, linux-staging, linux-kernel
On Mon, Mar 30, 2026 at 01:48:50PM +0600, Md. Mahmudul Hasan Mabud wrote:
> Use sysfs_streq() to compare the input buffer with the mode strings.
> This is more robust as it ignores trailing newlines, making it safer
> for sysfs store functions.
...
> struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> struct ad7816_chip_info *chip = iio_priv(indio_dev);
>
> - if (strcmp(buf, "full") == 0) {
> + if (sysfs_streq(buf, "full")) {
> gpiod_set_value(chip->rdwr_pin, 1);
> chip->mode = AD7816_FULL;
I think it might be better to do more work on this.
First of all, convert to use IIO_DEVICE_ATTR_RW().
Second, convert to use sysfs_emit() instead of sprintf().
But with that, switch to use a static array
static const char * const modes[] = {
[_FULL] = "full";
[_PD] = "power-save";
};
This will need redefinition to start from 0 (I don't see why it needs to
start from 1).
#define _FULL 0
#define _PD 1
This allows to switch to sysfs_match_string() and return an error on
unrecognized input (which is absent right now).
So, something like series out of ~3-4 patches is expected.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] staging: iio: adc: ad7816: use sysfs_streq() instead of strcmp()
2026-03-30 10:09 ` Andy Shevchenko
@ 2026-04-12 18:42 ` Jonathan Cameron
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2026-04-12 18:42 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Md. Mahmudul Hasan Mabud, lars, Michael.Hennerich, gregkh,
dlechner, nuno.sa, andy, linux-iio, linux-staging, linux-kernel
On Mon, 30 Mar 2026 13:09:20 +0300
Andy Shevchenko <andriy.shevchenko@intel.com> wrote:
> On Mon, Mar 30, 2026 at 01:48:50PM +0600, Md. Mahmudul Hasan Mabud wrote:
> > Use sysfs_streq() to compare the input buffer with the mode strings.
> > This is more robust as it ignores trailing newlines, making it safer
> > for sysfs store functions.
>
> ...
>
> > struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> > struct ad7816_chip_info *chip = iio_priv(indio_dev);
> >
> > - if (strcmp(buf, "full") == 0) {
> > + if (sysfs_streq(buf, "full")) {
> > gpiod_set_value(chip->rdwr_pin, 1);
> > chip->mode = AD7816_FULL;
>
> I think it might be better to do more work on this.
> First of all, convert to use IIO_DEVICE_ATTR_RW().
> Second, convert to use sysfs_emit() instead of sprintf().
> But with that, switch to use a static array
>
> static const char * const modes[] = {
> [_FULL] = "full";
> [_PD] = "power-save";
> };
>
> This will need redefinition to start from 0 (I don't see why it needs to
> start from 1).
>
> #define _FULL 0
> #define _PD 1
>
> This allows to switch to sysfs_match_string() and return an error on
> unrecognized input (which is absent right now).
>
> So, something like series out of ~3-4 patches is expected.
>
Hmm. ok I guess to cleaning this up, but worth noting that this
bit of ABI is custom and very very likely to go away in the longer
term if this driver is cleaned up enough to move out of staging,
Jonathan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-04-12 18:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-30 7:48 [PATCH] staging: iio: adc: ad7816: use sysfs_streq() instead of strcmp() Md. Mahmudul Hasan Mabud
2026-03-30 10:09 ` Andy Shevchenko
2026-04-12 18:42 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox