Re: [PATCH] pinctrl: qcom: fix masking of pinmux functions

From: Stephen Boyd
Date: Mon Sep 26 2016 - 02:36:36 EST


On Mon, Sep 12, 2016 at 2:36 AM, John Crispin <john@xxxxxxxxxxx> 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 <john@xxxxxxxxxxx>

Now I'm confused how it ever worked.... but agreed, the code looks wrong.

Reviewed-by: Stephen Boyd <stephen.boyd@xxxxxxxxxx>

> ---
> 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);
>