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 >