pinctrl: sh-pfc: Validate fixed-size field widths at build time
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 25 Jan 2019 10:56:05 +0000 (11:56 +0100)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Mon, 11 Feb 2019 13:11:35 +0000 (14:11 +0100)
Add a build-time check, to ensure the register and field widths in
descriptors for config registers with fixed-width fields are sane.
This helps catching bugs early.

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

index 46d477ff510921f36036b92bf8778296fbf3b081..56016cb76769c97bd1298b38eaeb329dde09da17 100644 (file)
@@ -126,7 +126,8 @@ struct pinmux_cfg_reg {
  * one for each possible combination of the register field bit values.
  */
 #define PINMUX_CFG_REG(name, r, r_width, f_width) \
-       .reg = r, .reg_width = r_width, .field_width = f_width,         \
+       .reg = r, .reg_width = r_width,                                 \
+       .field_width = f_width + BUILD_BUG_ON_ZERO(r_width % f_width),  \
        .enum_ids = (const u16 [(r_width / f_width) * (1 << f_width)])
 
 /*