Message ID | 20220131085201.307031-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] pinctrl: microchip-sgpio: Fix support for regmap | expand |
On Mon, Jan 31, 2022 at 10:50 AM Horatiu Vultur <horatiu.vultur@microchip.com> wrote: > > Initially the driver accessed the registers using u32 __iomem but then > in the blamed commit it changed it to use regmap. The problem is that now > the offset of the registers is not calculated anymore at word offset but > at byte offset. Therefore make sure to multiply the offset with word size. > > Acked-by: Steen Hegelund <Steen.Hegelund@microchip.com> > Reviewed-by: Colin Foster <colin.foster@in-advantage.com> > Fixes: 2afbbab45c261a ("pinctrl: microchip-sgpio: update to support regmap") > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> LGTM, Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> > --- > v1->v2: > - use regmap_get_reg_stride() instead of regmap_config.reg_stride > --- > drivers/pinctrl/pinctrl-microchip-sgpio.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pinctrl/pinctrl-microchip-sgpio.c b/drivers/pinctrl/pinctrl-microchip-sgpio.c > index 8e081c90bdb2..639f1130e989 100644 > --- a/drivers/pinctrl/pinctrl-microchip-sgpio.c > +++ b/drivers/pinctrl/pinctrl-microchip-sgpio.c > @@ -137,7 +137,8 @@ static inline int sgpio_addr_to_pin(struct sgpio_priv *priv, int port, int bit) > > static inline u32 sgpio_get_addr(struct sgpio_priv *priv, u32 rno, u32 off) > { > - return priv->properties->regoff[rno] + off; > + return (priv->properties->regoff[rno] + off) * > + regmap_get_reg_stride(priv->regs); > } > > static u32 sgpio_readl(struct sgpio_priv *priv, u32 rno, u32 off) > -- > 2.33.0 >
On Mon, Jan 31, 2022 at 9:50 AM Horatiu Vultur <horatiu.vultur@microchip.com> wrote: > Initially the driver accessed the registers using u32 __iomem but then > in the blamed commit it changed it to use regmap. The problem is that now > the offset of the registers is not calculated anymore at word offset but > at byte offset. Therefore make sure to multiply the offset with word size. > > Acked-by: Steen Hegelund <Steen.Hegelund@microchip.com> > Reviewed-by: Colin Foster <colin.foster@in-advantage.com> > Fixes: 2afbbab45c261a ("pinctrl: microchip-sgpio: update to support regmap") > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> Patch applied for fixes. I didn't get last weeks fixes to Torvalds this weekend because linux-next wasn't being compiled, will send the lot with this on top this week. Yours, Linus Walleij
diff --git a/drivers/pinctrl/pinctrl-microchip-sgpio.c b/drivers/pinctrl/pinctrl-microchip-sgpio.c index 8e081c90bdb2..639f1130e989 100644 --- a/drivers/pinctrl/pinctrl-microchip-sgpio.c +++ b/drivers/pinctrl/pinctrl-microchip-sgpio.c @@ -137,7 +137,8 @@ static inline int sgpio_addr_to_pin(struct sgpio_priv *priv, int port, int bit) static inline u32 sgpio_get_addr(struct sgpio_priv *priv, u32 rno, u32 off) { - return priv->properties->regoff[rno] + off; + return (priv->properties->regoff[rno] + off) * + regmap_get_reg_stride(priv->regs); } static u32 sgpio_readl(struct sgpio_priv *priv, u32 rno, u32 off)