Re: [PATCH 2/3] staging: iio: ad5933: use sysfs_emit() in show functions

From: Andy Shevchenko

Date: Fri Mar 20 2026 - 04:18:53 EST


On Thu, Mar 19, 2026 at 10:57:18PM +0000, Gabriel Rondon wrote:
> Replace sprintf() with sysfs_emit() in all sysfs attribute show
> functions. sysfs_emit() is the preferred API for sysfs callbacks as
> it is aware of the PAGE_SIZE buffer limit. No functional change.

...

> - return sprintf(buf, "%d\n", (int)freqreg);
> + return sysfs_emit(buf, "%d\n", (int)freqreg);

Why casting? Can you also address that by using the correct specifier
instead of %d?

...

> switch ((u32)this_attr->address) {
> case AD5933_OUT_RANGE:
> - len = sprintf(buf, "%u\n",
> - st->range_avail[(st->ctrl_hb >> 1) & 0x3]);
> + len = sysfs_emit(buf, "%u\n",
> + st->range_avail[(st->ctrl_hb >> 1) & 0x3]);
> break;
> case AD5933_OUT_RANGE_AVAIL:
> - len = sprintf(buf, "%u %u %u %u\n", st->range_avail[0],
> - st->range_avail[3], st->range_avail[2],
> - st->range_avail[1]);
> + len = sysfs_emit(buf, "%u %u %u %u\n", st->range_avail[0],
> + st->range_avail[3], st->range_avail[2],
> + st->range_avail[1]);
> break;
> case AD5933_OUT_SETTLING_CYCLES:
> - len = sprintf(buf, "%d\n", st->settling_cycles);
> + len = sysfs_emit(buf, "%d\n", st->settling_cycles);
> break;
> case AD5933_IN_PGA_GAIN:
> - len = sprintf(buf, "%s\n",
> - (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ?
> - "1" : "0.2");
> + len = sysfs_emit(buf, "%s\n",
> + (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ?
> + "1" : "0.2");
> break;
> case AD5933_IN_PGA_GAIN_AVAIL:
> - len = sprintf(buf, "1 0.2\n");
> + len = sysfs_emit(buf, "1 0.2\n");
> break;
> case AD5933_FREQ_POINTS:
> - len = sprintf(buf, "%d\n", st->freq_points);
> + len = sysfs_emit(buf, "%d\n", st->freq_points);
> break;

I believe the entire function should be resplit to use a unique one
for each sysfs node. Also IIO has different approaches for static lists
in the _avail nodes.


--
With Best Regards,
Andy Shevchenko