In the generic pin config library, readback of some options are handled
differently compared to the setting of those options: the argument value
is used to convey enable/disable of an option in the set path, but
success or -EINVAL is used to convey if an option is enabled or disabled
in the debugfs readback path.
PIN_CONFIG_INPUT_SCHMITT_ENABLE is one such option. Fix the readback of
the option in the mediatek-paris library, so that the debugfs dump is
not showing "input schmitt enabled" for pins that don't have it enabled.
Fixes: 1bea6afbc842 ("pinctrl: mediatek: Refine mtk_pinconf_get()")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
drivers/pinctrl/mediatek/pinctrl-paris.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index b6bc31abd2b0..9353f78a52f0 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -193,6 +193,8 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
}
err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &ret);
+ if (!ret)
+ err = -EINVAL;
break;
case PIN_CONFIG_DRIVE_STRENGTH:
if (!hw->soc->drive_get)
--
2.44.0.396.g6e790dbe36-goog
On Wed, Mar 27, 2024 at 05:13:33PM +0800, Chen-Yu Tsai wrote: > In the generic pin config library, readback of some options are handled > differently compared to the setting of those options: the argument value > is used to convey enable/disable of an option in the set path, but > success or -EINVAL is used to convey if an option is enabled or disabled > in the debugfs readback path. > > PIN_CONFIG_INPUT_SCHMITT_ENABLE is one such option. Fix the readback of > the option in the mediatek-paris library, so that the debugfs dump is > not showing "input schmitt enabled" for pins that don't have it enabled. > > Fixes: 1bea6afbc842 ("pinctrl: mediatek: Refine mtk_pinconf_get()") > Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> > --- > drivers/pinctrl/mediatek/pinctrl-paris.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c > index b6bc31abd2b0..9353f78a52f0 100644 > --- a/drivers/pinctrl/mediatek/pinctrl-paris.c > +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c > @@ -193,6 +193,8 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, > } > > err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &ret); > + if (!ret) > + err = -EINVAL; In this function "ret" contains a mix of different data depending on what the param is. It's not always clear what "ret" means from one line to the next. I think it would be more clear to say if (ret == MTK_DISABLE) in this case... (I'm sorry to the list for sending so many nit picks today). regards, dan carpenter
© 2016 - 2024 Red Hat, Inc.