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

From: Linus Walleij
Date: Thu Feb 29 2024 - 04:22:35 EST


On Wed, Feb 28, 2024 at 12:28 PM Théo Lebrun <theo.lebrun@xxxxxxxxxxx> 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@xxxxxxxxxx>
> Signed-off-by: Théo Lebrun <theo.lebrun@xxxxxxxxxxx>

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