1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

pinctrl: pinconf-generic: Print unsigned value if a format is registered

Commit 3ba11e684d ("pinctrl: pinconf-generic: print hex value")
unconditionally switched to printing hex values in
pinconf_generic_dump_one(). However, if a dump format is registered for the
dumped pin, the hex value is printed as well. This hex value does not
necessarily correspond 1:1 with the hardware register value (as noted by
commit 3ba11e684d ("pinctrl: pinconf-generic: print hex value")). As a
result, user-facing output may include information like:
output drive strength (0x100 uA).

To address this, check if a dump format is registered for the dumped
property, and print the unsigned value instead when applicable.

Fixes: 3ba11e684d ("pinctrl: pinconf-generic: print hex value")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://lore.kernel.org/20250205101058.2034860-1-claudiu.beznea.uj@bp.renesas.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Claudiu Beznea 2025-02-05 12:10:58 +02:00 committed by Linus Walleij
parent 1ddee69108
commit 0af4c120f5

View file

@ -89,12 +89,12 @@ static void pinconf_generic_dump_one(struct pinctrl_dev *pctldev,
seq_puts(s, items[i].display);
/* Print unit if available */
if (items[i].has_arg) {
seq_printf(s, " (0x%x",
pinconf_to_config_argument(config));
u32 val = pinconf_to_config_argument(config);
if (items[i].format)
seq_printf(s, " %s)", items[i].format);
seq_printf(s, " (%u %s)", val, items[i].format);
else
seq_puts(s, ")");
seq_printf(s, " (0x%x)", val);
}
}
}