On Wed, 9 Sep 2020 at 11:43, Andrew Jeffery <[email protected]> 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 <[email protected]> > Fixes: 5f52c853847f ("pinctrl: aspeed: Use masks to describe pinconf > bitfields") > Signed-off-by: Andrew Jeffery <[email protected]>
Owch. Reviewed-by: Joel Stanley <[email protected]> > --- > 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 >

