]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fbdev: omapfb: panel-sony-acx565akm: Simplify show_cabc_available_modes()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 8 Aug 2024 09:46:11 +0000 (11:46 +0200)
committerHelge Deller <deller@gmx.de>
Fri, 30 Aug 2024 16:42:38 +0000 (18:42 +0200)
Use sysfs_emit_at() instead of snprintf() + custom logic.
Using sysfs_emit_at() is much more simple.

Also, sysfs_emit() is already used in this function, so using
sysfs_emit_at() is more consistent.

Also simplify the logic:
  - always add a space after an entry
  - change the last space into a '\n'

Finally it is easy to see that, given the size of cabc_modes, PAGE_SIZE
can not be reached.
So better keep everything simple (and correct).

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/omap2/omapfb/displays/panel-sony-acx565akm.c

index 71d2e015960c7f1ab4b7dfcca580e0fb67043fde..fc975615d5c9e44d1c53d20266cd9754234effbc 100644 (file)
@@ -466,19 +466,20 @@ static ssize_t show_cabc_available_modes(struct device *dev,
                char *buf)
 {
        struct panel_drv_data *ddata = dev_get_drvdata(dev);
-       int len;
+       int len = 0;
        int i;
 
        if (!ddata->has_cabc)
                return sysfs_emit(buf, "%s\n", cabc_modes[0]);
 
-       for (i = 0, len = 0;
-            len < PAGE_SIZE && i < ARRAY_SIZE(cabc_modes); i++)
-               len += snprintf(&buf[len], PAGE_SIZE - len, "%s%s%s",
-                       i ? " " : "", cabc_modes[i],
-                       i == ARRAY_SIZE(cabc_modes) - 1 ? "\n" : "");
+       for (i = 0; i < ARRAY_SIZE(cabc_modes); i++)
+               len += sysfs_emit_at(buf, len, "%s ", cabc_modes[i]);
+
+       /* Remove the trailing space */
+       if (len)
+               buf[len - 1] = '\n';
 
-       return len < PAGE_SIZE ? len : PAGE_SIZE - 1;
+       return len;
 }
 
 static DEVICE_ATTR(cabc_mode, S_IRUGO | S_IWUSR,