diff mbox series

pinctrl: mediatek: move bit assignment

Message ID 20210528091945.411471-1-linus.walleij@linaro.org
State Accepted
Commit 696beef77521d3e418a2780859d1522c3c39d9b5
Headers show
Series pinctrl: mediatek: move bit assignment | expand

Commit Message

Linus Walleij May 28, 2021, 9:19 a.m. UTC
The bit needs offset to be defined which happens some lines
below. Looks like a bug. The kernel test robot complains:

drivers/pinctrl/mediatek/pinctrl-mtk-common.c:137:12:
warning: variable 'offset' is uninitialized when used here [-Wuninitialized]
           bit = BIT(offset & pctl->devdata->mode_mask);
                     ^~~~~~

Fix it up by reverting to what was done before.

Cc: Fabien Parent <fparent@baylibre.com>
Cc: Sean Wang <sean.wang@kernel.org>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Cc: linux-mediatek@lists.infradead.org
Fixes: 9f940d8ecf92 ("pinctrl: mediatek: don't hardcode mode encoding in common code")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.31.1

Comments

Matthias Brugger June 2, 2021, 12:34 p.m. UTC | #1
Hi Linus,

On 28/05/2021 11:19, Linus Walleij wrote:
> The bit needs offset to be defined which happens some lines

> below. Looks like a bug. The kernel test robot complains:

> 

> drivers/pinctrl/mediatek/pinctrl-mtk-common.c:137:12:

> warning: variable 'offset' is uninitialized when used here [-Wuninitialized]

>            bit = BIT(offset & pctl->devdata->mode_mask);

>                      ^~~~~~

> 

> Fix it up by reverting to what was done before.

> 

> Cc: Fabien Parent <fparent@baylibre.com>

> Cc: Sean Wang <sean.wang@kernel.org>

> Cc: Matthias Brugger <matthias.bgg@gmail.com>

> Cc: Mattijs Korpershoek <mkorpershoek@baylibre.com>

> Cc: linux-mediatek@lists.infradead.org

> Fixes: 9f940d8ecf92 ("pinctrl: mediatek: don't hardcode mode encoding in common code")

> Reported-by: kernel test robot <lkp@intel.com>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> ---

>  drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c

> index 9fe91e11a877..525b1aa7f7a6 100644

> --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c

> +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c

> @@ -134,7 +134,7 @@ static int mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin,

>  			pin, pctl->devdata->port_align, value, arg);

>  	}

>  

> -	

> +	bit = BIT(pin & 0xf);


I see this is already applied to linux-next, but I think the correct fix is to move
bit = BIT(offset & pctl->devdata->mode_mask);
just before calling regmap_write(...)

I can provide a patch for that, if you want. Just let me know if I should base
it against linux-next or if you will drop the fix proposed by you?

Regards,
Matthias

>  

>  	if (arg == PIN_CONFIG_INPUT_ENABLE)

>  		offset = pctl->devdata->ies_offset;

>
Linus Walleij June 6, 2021, 10:49 p.m. UTC | #2
On Wed, Jun 2, 2021 at 2:34 PM Matthias Brugger <matthias.bgg@gmail.com> wrote:

> > -

> > +     bit = BIT(pin & 0xf);

>

> I see this is already applied to linux-next, but I think the correct fix is to move

> bit = BIT(offset & pctl->devdata->mode_mask);

> just before calling regmap_write(...)

>

> I can provide a patch for that, if you want. Just let me know if I should base

> it against linux-next or if you will drop the fix proposed by you?


Just patch it in my tree, I merged more stuff on top and this
was just my quickfix to get next working.

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 9fe91e11a877..525b1aa7f7a6 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -134,7 +134,7 @@  static int mtk_pconf_set_ies_smt(struct mtk_pinctrl *pctl, unsigned pin,
 			pin, pctl->devdata->port_align, value, arg);
 	}
 
-	bit = BIT(offset & pctl->devdata->mode_mask);
+	bit = BIT(pin & 0xf);
 
 	if (arg == PIN_CONFIG_INPUT_ENABLE)
 		offset = pctl->devdata->ies_offset;