Re: [PATCH v3] iio: proximity: srf08: replace sprintf() with sysfs_emit()

Jonathan Cameron
2026-04-21T14:42:08Z

On Mon, 20 Apr 2026 18:08:13 -0500
Maxwell Doose <m32285159@gmail.com> wrote:

> This patch replaces sprintf() function calls with sysfs_emit() and
> sysfs_emit_at(). While the current code is fine, sysfs_emit() is
> preferred over sprintf(), and will help modernize the driver.
>
> Signed-off-by: Maxwell Doose <m32285159@gmail.com>
> ---
> v2:
> - Fixed indenting of sysfs_emit call in function srf08_show_range_mm.

Not true unfortunately. Now broken differently.

> - Optimized return sequence in function srf08_show_sensitivity by
> directly returning instead of modifying a variable and then
> returning.
>
> v3:
> - Changed indenting of sysfs_emit() call in function
> srf08_show_range_mm() per Andy Shevchenko's request.
> - Clarified commit message details.
>
> drivers/iio/proximity/srf08.c | 15 ++++++---------
> 1 file changed, 6 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/iio/proximity/srf08.c b/drivers/iio/proximity/srf08.c
> index d7e4cc48cfbf..e92526459dcf 100644
> --- a/drivers/iio/proximity/srf08.c
> +++ b/drivers/iio/proximity/srf08.c
> @@ -226,7 +226,7 @@ static int srf08_read_raw(struct iio_dev *indio_dev,
> static ssize_t srf08_show_range_mm_available(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> - return sprintf(buf, "[0.043 0.043 11.008]\n");
> + return sysfs_emit(buf, "[0.043 0.043 11.008]\n");
> }
>
> static IIO_DEVICE_ATTR(sensor_max_range_available, S_IRUGO,
> @@ -238,8 +238,8 @@ static ssize_t srf08_show_range_mm(struct device *dev,
> struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> struct srf08_data *data = iio_priv(indio_dev);
>
> - return sprintf(buf, "%d.%03d\n", data->range_mm / 1000,
> - data->range_mm % 1000);
> + return sysfs_emit(buf, "%d.%03d\n",
> + data->range_mm / 1000, data->range_mm % 1000);
Should be:
return sysfs_emit(buf, "%d.%03d\n",
data->range_mm / 1000, data->range_mm % 1000);
Or
return sysfs_emit(buf, "%d.%03d\n", data->range_mm / 1000,
data->range_mm % 1000);

> }
>
> /*
> @@ -316,10 +316,10 @@ static ssize_t srf08_show_sensitivity_available(struct device *dev,
>
> for (i = 0; i < data->chip_info->num_sensitivity_avail; i++)
> if (data->chip_info->sensitivity_avail[i])
> - len += sprintf(buf + len, "%d ",
> + len += sysfs_emit_at(buf, len, "%d ",
> data->chip_info->sensitivity_avail[i]);
>
> - len += sprintf(buf + len, "\n");
> + len += sysfs_emit_at(buf, len, "\n");
>
> return len;
> }
> @@ -332,11 +332,8 @@ static ssize_t srf08_show_sensitivity(struct device *dev,
> {
> struct iio_dev *indio_dev = dev_to_iio_dev(dev);
> struct srf08_data *data = iio_priv(indio_dev);
> - int len;
>
> - len = sprintf(buf, "%d\n", data->sensitivity);
> -
> - return len;
> + return sysfs_emit(buf, "%d\n", data->sensitivity);
> }
>
> static ssize_t srf08_write_sensitivity(struct srf08_data *data,