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

Maxwell Doose
2026-04-20T23:08:15Z

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.
- 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);
}

/*
@@ -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,
--
2.53.0