[PATCH v2 05/30] gpio: nomadik: fix offset bug in nmk_pmx_set()

Linus Walleij linus.walleij at linaro.org
Thu Feb 29 01:22:12 PST 2024


On Wed, Feb 28, 2024 at 12:28 PM Théo Lebrun <theo.lebrun at bootlin.com> wrote:

> Previously, the statement looked like:
>
>     slpm[x] &= ~BIT(g->grp.pins[i]);
>
> Where:
>  - slpm is a unsigned int pointer;
>  - g->grp.pins[i] is a pin number. It can grow to more than 32.
>
> The expected shift amount is a pin bank offset.
>
> This bug does not occur on every group or pin: the altsetting must be
> NMK_GPIO_ALT_C and the pin must be 32 or above. It might have occured.
> For example, in pinctrl-nomadik-db8500.c, pin group i2c3_c_2 has the
> right altsetting and pins 229 and 230.
>
> Fixes: dbfe8ca259e1 ("pinctrl/nomadik: implement pin multiplexing")
> Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
> Signed-off-by: Théo Lebrun <theo.lebrun at bootlin.com>

Patch applied!

Since the bug is not affecting the deployed UX500 systems I have merged
it with the rest as non-urgent fix, but it can be backported as a standalone
patch if the stable maintainers want it after the release of v6.9-rc1.

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list