Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61c552e4 authored by Huang-Huang Bao's avatar Huang-Huang Bao Committed by Greg Kroah-Hartman
Browse files

pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set



[ Upstream commit 4ea4d4808e342ddf89ba24b93ffa2057005aaced ]

rockchip_pmx_set reset all pinmuxs in group to 0 in the case of error,
add missing bank data retrieval in that code to avoid setting mux on
unexpected pins.

Fixes: 14797189 ("pinctrl: rockchip: add return value to rockchip_set_mux")
Reviewed-by: default avatarHeiko Stuebner <heiko@sntech.de>
Signed-off-by: default avatarHuang-Huang Bao <i@eh5.me>
Link: https://lore.kernel.org/r/20240606125755.53778-5-i@eh5.me


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent f8426b53
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -2203,8 +2203,10 @@ static int rockchip_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,


	if (ret) {
	if (ret) {
		/* revert the already done pin settings */
		/* revert the already done pin settings */
		for (cnt--; cnt >= 0; cnt--)
		for (cnt--; cnt >= 0; cnt--) {
			bank = pin_to_bank(info, pins[cnt]);
			rockchip_set_mux(bank, pins[cnt] - bank->pin_base, 0);
			rockchip_set_mux(bank, pins[cnt] - bank->pin_base, 0);
		}


		return ret;
		return ret;
	}
	}