From b78e417d3f191878a30dd5947ef2a1ee3b5ab1dd Mon Sep 17 00:00:00 2001 From: David Wu Date: Wed, 29 Aug 2018 16:37:04 +0800 Subject: [PATCH] pinctrl: rockchip: Add mux range support while setting iomux When the pin is set as an iomux value that is outside its range, it should return a failure, otherwise it may be overwritten with incorrect value. Change-Id: I381d9f5bf6f4bfa7d0512350e6b051bebf513d3e Signed-off-by: David Wu --- drivers/pinctrl/pinctrl-rockchip.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c index 01cf8e00e0c7..4f84c3e14c98 100644 --- a/drivers/pinctrl/pinctrl-rockchip.c +++ b/drivers/pinctrl/pinctrl-rockchip.c @@ -1506,6 +1506,9 @@ static int rockchip_set_mux(struct rockchip_pin_bank *bank, int pin, int mux) if (bank->recalced_mask & BIT(pin)) rockchip_get_recalced_mux(bank, pin, ®, &bit, &mask); + if (mux > mask) + return -EINVAL; + if (bank->route_mask & BIT(pin)) { if (rockchip_get_mux_route(bank, pin, mux, &route_reg, &route_val)) {