37e0f758e0
[ Upstream commit 53cf6b72e074864b94ade97dcb6f30b5ac1a82dc ]
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:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
pinctrl-ab8500.c | ||
pinctrl-ab8505.c | ||
pinctrl-abx500.c | ||
pinctrl-abx500.h | ||
pinctrl-nomadik-db8500.c | ||
pinctrl-nomadik-stn8815.c | ||
pinctrl-nomadik.c | ||
pinctrl-nomadik.h |