pinctrl: SPEAr: Don't update all non muxreg bits on pinctrl_disable
authorViresh Kumar <viresh.kumar@linaro.org>
Sat, 27 Oct 2012 09:17:46 +0000 (14:47 +0530)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 5 Nov 2012 11:33:34 +0000 (12:33 +0100)
Not all bits of a register are used for pinctrl in SPEAr. So only update bits
relevant to pinctrl using muxreg->mask.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/spear/pinctrl-spear.c

index 5d4f44f462f0962b26b955d877f3a0ceb0285c7a..b1fd6ee33c6ceed614e3a5ccf1cb096049069710 100644 (file)
@@ -244,7 +244,7 @@ static int spear_pinctrl_endisable(struct pinctrl_dev *pctldev,
                        else
                                temp = ~muxreg->val;
 
-                       val |= temp;
+                       val |= muxreg->mask & temp;
                        pmx_writel(pmx, val, muxreg->reg);
                }
        }