Message ID | 20210701080955.2660294-1-hsinyi@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] pinctrl: mediatek: Fix fallback behavior for bias_set_combo | expand |
On Thu, Jul 1, 2021 at 4:10 PM Hsin-Yi Wang <hsinyi@chromium.org> wrote: > > Some pin doesn't support PUPD register, if it fails and fallbacks with > bias_set_combo case, it will call mtk_pinconf_bias_set_pupd_r1_r0() to > modify the PUPD pin again. > > Since the general bias set are either PU/PD or PULLSEL/PULLEN, try > bias_set or bias_set_rev1 for the other fallback case. If the pin > doesn't support neither PU/PD nor PULLSEL/PULLEN, it will return > -ENOTSUPP. > > Fixes: 81bd1579b43e ("pinctrl: mediatek: Fix fallback call path") > Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
On Thu, 2021-07-01 at 16:41 +0800, Chen-Yu Tsai wrote: > On Thu, Jul 1, 2021 at 4:10 PM Hsin-Yi Wang <hsinyi@chromium.org> wrote: > > > > Some pin doesn't support PUPD register, if it fails and fallbacks with > > bias_set_combo case, it will call mtk_pinconf_bias_set_pupd_r1_r0() to > > modify the PUPD pin again. > > > > Since the general bias set are either PU/PD or PULLSEL/PULLEN, try > > bias_set or bias_set_rev1 for the other fallback case. If the pin > > doesn't support neither PU/PD nor PULLSEL/PULLEN, it will return > > -ENOTSUPP. > > > > Fixes: 81bd1579b43e ("pinctrl: mediatek: Fix fallback call path") > > Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> > > Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> Reviewed-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
Hi Hsin-Yi, On Thu, Jul 1, 2021 at 10:10 AM Hsin-Yi Wang <hsinyi@chromium.org> wrote: > > Some pin doesn't support PUPD register, if it fails and fallbacks with > bias_set_combo case, it will call mtk_pinconf_bias_set_pupd_r1_r0() to > modify the PUPD pin again. > > Since the general bias set are either PU/PD or PULLSEL/PULLEN, try > bias_set or bias_set_rev1 for the other fallback case. If the pin > doesn't support neither PU/PD nor PULLSEL/PULLEN, it will return > -ENOTSUPP. > > Fixes: 81bd1579b43e ("pinctrl: mediatek: Fix fallback call path") > Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> > --- > v2: fix v1 comments Thanks for fixing this up so nicely, great work. Patch applied for fixes! Yours, Linus Walleij
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c index 7815426e7aeaa..10002b8497fea 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c @@ -926,12 +926,10 @@ int mtk_pinconf_adv_pull_set(struct mtk_pinctrl *hw, err = hw->soc->bias_set(hw, desc, pullup); if (err) return err; - } else if (hw->soc->bias_set_combo) { - err = hw->soc->bias_set_combo(hw, desc, pullup, arg); - if (err) - return err; } else { - return -ENOTSUPP; + err = mtk_pinconf_bias_set_rev1(hw, desc, pullup); + if (err) + err = mtk_pinconf_bias_set(hw, desc, pullup); } }
Some pin doesn't support PUPD register, if it fails and fallbacks with bias_set_combo case, it will call mtk_pinconf_bias_set_pupd_r1_r0() to modify the PUPD pin again. Since the general bias set are either PU/PD or PULLSEL/PULLEN, try bias_set or bias_set_rev1 for the other fallback case. If the pin doesn't support neither PU/PD nor PULLSEL/PULLEN, it will return -ENOTSUPP. Fixes: 81bd1579b43e ("pinctrl: mediatek: Fix fallback call path") Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> --- v2: fix v1 comments --- drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-)