pinctrl: sh-pfc: Print actual field width for variable-width fields
authorGeert Uytterhoeven <geert+renesas@glider.be>
Thu, 13 Dec 2018 14:20:13 +0000 (15:20 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Tue, 18 Dec 2018 10:25:56 +0000 (11:25 +0100)
The debug code in sh_pfc_write_config_reg() prints the width of the
field being modified.

However, registers with a variable-width field layout are identified by
pinmux_cfg_reg.field_width being zero, hence zeroes are printed instead
of the actual field widths.

Fix this by printing the Hamming weight of the field mask instead, which
is correct for both fixed-width and variable-width fields.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
drivers/pinctrl/sh-pfc/core.c

index a10f7050a74f35ffd4a7e83cf08c1efde452667d..f1cfcc8c6544666238ca7b03bb032b09fc5eafbb 100644 (file)
@@ -221,7 +221,7 @@ static void sh_pfc_write_config_reg(struct sh_pfc *pfc,
 
        dev_dbg(pfc->dev, "write_reg addr = %x, value = 0x%x, field = %u, "
                "r_width = %u, f_width = %u\n",
-               crp->reg, value, field, crp->reg_width, crp->field_width);
+               crp->reg, value, field, crp->reg_width, hweight32(mask));
 
        mask = ~(mask << pos);
        value = value << pos;