On Tue, Jan 21, 2020 at 10:53 PM <light.hsieh@xxxxxxxxxxxx> wrote: > > From: Light Hsieh <light.hsieh@xxxxxxxxxxxx> > > Correct cases for PIN_CONFIG_SLEW_RATE, PIN_CONFIG_INPUT_SCHMITT_ENABLE, > and PIN_CONFIG_OUTPUT_ENABLE - > Use variable ret to receive value in mtk_hw_get_value() (instead of > variable val) since pinconf_to_config_packed() at end of this function > use variable ret to pack config value. > > Signed-off-by: Light Hsieh <light.hsieh@xxxxxxxxxxxx> Acked-by: Sean Wang <sean.wang@xxxxxxxxxx> > --- > drivers/pinctrl/mediatek/pinctrl-paris.c | 40 ++++++++++++-------------------- > 1 file changed, 15 insertions(+), 25 deletions(-) > > diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c > index 2f07500..d09a726 100644 > --- a/drivers/pinctrl/mediatek/pinctrl-paris.c > +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c > @@ -78,7 +78,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, > { > struct mtk_pinctrl *hw = pinctrl_dev_get_drvdata(pctldev); > u32 param = pinconf_to_config_param(*config); > - int val, val2, err, reg, ret = 1; > + int err, reg, ret = 1; > const struct mtk_pin_desc *desc; > > if (pin >= hw->soc->npins) { > @@ -107,17 +107,11 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, > err = -ENOTSUPP; > break; > case PIN_CONFIG_SLEW_RATE: > - err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SR, &val); > - if (err) > - return err; > - > - if (!val) > - return -EINVAL; > - > + err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SR, &ret); > break; > case PIN_CONFIG_INPUT_ENABLE: > case PIN_CONFIG_OUTPUT_ENABLE: > - err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &val); > + err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &ret); > if (err) > goto out; > /* CONFIG Current direction return value > @@ -128,20 +122,22 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, > * input 1 (= reverse HW value) > */ > if (param == PIN_CONFIG_INPUT_ENABLE) > - val = !val; > + ret = !ret; > > break; > case PIN_CONFIG_INPUT_SCHMITT_ENABLE: > - err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &val); > + err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_DIR, &ret); > if (err) > - return err; > - > - err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &val2); > - if (err) > - return err; > + goto out; > + /* return error when in output mode > + * because schmitt trigger only work in input mode > + */ > + if (ret) { > + err = -EINVAL; > + goto out; > + } > > - if (val || !val2) > - return -EINVAL; > + err = mtk_hw_get_value(hw, desc, PINCTRL_PIN_REG_SMT, &ret); > > break; > case PIN_CONFIG_DRIVE_STRENGTH: > @@ -154,13 +150,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev, > case MTK_PIN_CONFIG_RDSEL: > reg = (param == MTK_PIN_CONFIG_TDSEL) ? > PINCTRL_PIN_REG_TDSEL : PINCTRL_PIN_REG_RDSEL; > - > - err = mtk_hw_get_value(hw, desc, reg, &val); > - if (err) > - return err; > - > - ret = val; > - > + err = mtk_hw_get_value(hw, desc, reg, &ret); > break; > case MTK_PIN_CONFIG_PU_ADV: > case MTK_PIN_CONFIG_PD_ADV: > -- > 1.8.1.1.dirty