On Mon, Sep 12, 2016 at 2:36 AM, John Crispin <[email protected]> wrote: > The following commit introduced a regression by not properly masking the > calculated value. > > commit 47a01ee9a6c39fe1 ("pinctrl: qcom: Clear all function selection bits") > > Signed-off-by: John Crispin <[email protected]>
Now I'm confused how it ever worked.... but agreed, the code looks wrong. Reviewed-by: Stephen Boyd <[email protected]> > --- > drivers/pinctrl/qcom/pinctrl-msm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c > b/drivers/pinctrl/qcom/pinctrl-msm.c > index 51c42d7..775c883 100644 > --- a/drivers/pinctrl/qcom/pinctrl-msm.c > +++ b/drivers/pinctrl/qcom/pinctrl-msm.c > @@ -156,7 +156,7 @@ static int msm_pinmux_set_mux(struct pinctrl_dev *pctldev, > spin_lock_irqsave(&pctrl->lock, flags); > > val = readl(pctrl->regs + g->ctl_reg); > - val &= mask; > + val &= ~mask; > val |= i << g->mux_bit; > writel(val, pctrl->regs + g->ctl_reg); >

