Skip to content

Commit

Permalink
pinctrl: pinconf-generic: Print unsigned value if a format is registered
Browse files Browse the repository at this point in the history
Commit 3ba11e6 ("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 3ba11e6 ("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: 3ba11e6 ("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>
  • Loading branch information
Claudiu Beznea authored and Linus Walleij committed Feb 6, 2025
1 parent 1ddee69 commit 0af4c12
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/pinctrl/pinconf-generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
}
Expand Down

0 comments on commit 0af4c12

Please sign in to comment.