power: supply: core: ease special formatting implementations
authorThomas Weißschuh <linux@weissschuh.net>
Sun, 3 Mar 2024 15:31:14 +0000 (16:31 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 5 Mar 2024 23:37:36 +0000 (00:37 +0100)
By moving the conditional into the default-branch of the switch new
additions to the switch won't have to bypass the conditional.

This makes it easier to implement those special cases like the upcoming
change to the formatting of "charge_behaviour".

Suggested-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/lkml/53082075-852f-4698-b354-ed30e7fd2683@redhat.com/
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20240303-power_supply-charge_behaviour_prop-v2-2-8ebb0a7c2409@weissschuh.net
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/power_supply_sysfs.c

index bf725cb..9b461e9 100644 (file)
@@ -298,11 +298,6 @@ static ssize_t power_supply_show_property(struct device *dev,
                }
        }
 
-       if (ps_attr->text_values_len > 0 &&
-           value.intval < ps_attr->text_values_len && value.intval >= 0) {
-               return sysfs_emit(buf, "%s\n", ps_attr->text_values[value.intval]);
-       }
-
        switch (psp) {
        case POWER_SUPPLY_PROP_USB_TYPE:
                ret = power_supply_show_usb_type(dev, psy->desc,
@@ -312,7 +307,12 @@ static ssize_t power_supply_show_property(struct device *dev,
                ret = sysfs_emit(buf, "%s\n", value.strval);
                break;
        default:
-               ret = sysfs_emit(buf, "%d\n", value.intval);
+               if (ps_attr->text_values_len > 0 &&
+                               value.intval < ps_attr->text_values_len && value.intval >= 0) {
+                       ret = sysfs_emit(buf, "%s\n", ps_attr->text_values[value.intval]);
+               } else {
+                       ret = sysfs_emit(buf, "%d\n", value.intval);
+               }
        }
 
        return ret;