]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
pinctrl: aspeed: Use the right pinconf mask
authorAndrew Jeffery <andrew@aj.id.au>
Thu, 10 Sep 2020 02:56:30 +0000 (12:26 +0930)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 09:11:31 +0000 (10:11 +0100)
[ Upstream commit 1d6db5ae6b090d1a8edfcb36b9bf47c5f4fe27f6 ]

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.

Fixes: 5f52c853847f ("pinctrl: aspeed: Use masks to describe pinconf bitfields")
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Cc: Johnny Huang <johnny_huang@aspeedtech.com>
Link: https://lore.kernel.org/r/20200910025631.2996342-3-andrew@aj.id.au
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/aspeed/pinctrl-aspeed.c

index 53f3f8aec695649839ff0ecae79bad74ae1fa57b..3e6567355d97dd6bacee9aed6b2272b935c18eed 100644 (file)
@@ -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;