leds: sun50i-a100: Use match_string() helper to simplify the code
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 26 Apr 2024 15:25:15 +0000 (18:25 +0300)
committerLee Jones <lee@kernel.org>
Thu, 2 May 2024 17:06:30 +0000 (18:06 +0100)
match_string() returns the array index of a matching string.
Use it instead of the open-coded implementation.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://lore.kernel.org/r/20240426152515.872917-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/leds-sun50i-a100.c

index 62d21c3a35757c3988dfa03900e40ff585a5e57a..119eff9471f054f325fa91f8a97bcf88208e1775 100644 (file)
@@ -252,18 +252,16 @@ static int sun50i_a100_ledc_parse_format(struct device *dev,
                                         struct sun50i_a100_ledc *priv)
 {
        const char *format = "grb";
-       u32 i;
+       int i;
 
        device_property_read_string(dev, "allwinner,pixel-format", &format);
 
-       for (i = 0; i < ARRAY_SIZE(sun50i_a100_ledc_formats); i++) {
-               if (!strcmp(format, sun50i_a100_ledc_formats[i])) {
-                       priv->format = i;
-                       return 0;
-               }
-       }
+       i = match_string(sun50i_a100_ledc_formats, ARRAY_SIZE(sun50i_a100_ledc_formats), format);
+       if (i < 0)
+               return dev_err_probe(dev, i, "Bad pixel format '%s'\n", format);
 
-       return dev_err_probe(dev, -EINVAL, "Bad pixel format '%s'\n", format);
+       priv->format = i;
+       return 0;
 }
 
 static void sun50i_a100_ledc_set_format(struct sun50i_a100_ledc *priv)