Commit 0af4c120 authored by Claudiu Beznea's avatar Claudiu Beznea Committed by Linus Walleij
Browse files

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



Commit 3ba11e68 ("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 3ba11e68 ("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: 3ba11e68 ("pinctrl: pinconf-generic: print hex value")
Signed-off-by: default avatarClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Link: https://lore.kernel.org/20250205101058.2034860-1-claudiu.beznea.uj@bp.renesas.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 1ddee691
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);
		}
	}
}