Re: [PATCH 2/3] pinctrl: aspeed: Use the right pinconf mask

From: Joel Stanley
Date: Wed Sep 09 2020 - 22:08:50 EST


On Wed, 9 Sep 2020 at 11:43, Andrew Jeffery <andrew@xxxxxxxx> wrote:
>
> The Aspeed pinconf data structures are split into 'conf' and 'map'
> types, where the 'conf' struct defines which register and bitfield to
> manipulate, while the 'map' struct defines what value to write to
> the register and bitfield.
>
> Both structs have a mask member, and the wrong mask was being used to
> tell the regmap which bits to update.
>
> A todo is to look at whether we can remove the mask from the 'map'
> struct.
>
> Cc: Johnny Huang <johnny_huang@xxxxxxxxxxxxxx>
> Fixes: 5f52c853847f ("pinctrl: aspeed: Use masks to describe pinconf bitfields")
> Signed-off-by: Andrew Jeffery <andrew@xxxxxxxx>

Owch.

Reviewed-by: Joel Stanley <joel@xxxxxxxxx>

> ---
> drivers/pinctrl/aspeed/pinctrl-aspeed.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/aspeed/pinctrl-aspeed.c b/drivers/pinctrl/aspeed/pinctrl-aspeed.c
> index d8972911d505..e03ee78b2434 100644
> --- a/drivers/pinctrl/aspeed/pinctrl-aspeed.c
> +++ b/drivers/pinctrl/aspeed/pinctrl-aspeed.c
> @@ -534,7 +534,7 @@ int aspeed_pin_config_set(struct pinctrl_dev *pctldev, unsigned int offset,
> val = pmap->val << __ffs(pconf->mask);
>
> rc = regmap_update_bits(pdata->scu, pconf->reg,
> - pmap->mask, val);
> + pconf->mask, val);
>
> if (rc < 0)
> return rc;
> --
> 2.25.1
>