Re: [PATCH 2/2] pinctrl: ocelot: fix pinconf

From: Colin Foster
Date: Wed Jul 13 2022 - 19:20:58 EST


On Thu, Jul 14, 2022 at 01:07:24AM +0200, Robert Marko wrote:
> On Thu, Jul 14, 2022 at 1:01 AM Colin Foster <colin.foster@xxxxxxxxxxxxxxxx>
> wrote:
>
> > Hi Robert,
> >
> > On Thu, Jul 14, 2022 at 12:51:51AM +0200, Robert Marko wrote:
> > > Commit "pinctrl: ocelot: convert pinctrl to regmap" moved to using
> > > regmap_read/write, however it neglected to also carry out alignment
> > > to register stride of 4.
> > >
> > > This would cause the following error:
> > > [ 1.720873] pinctrl-ocelot 6110101e0.pinctrl: pin_config_set op
> > failed for pin 34
> > > [ 1.728110] sdhci-sparx5 600800000.mmc: Error applying setting,
> > reverse things back
> > >
> > > So, regmap_read would return -EINVAL as it was being passed address
> > > of the pin without stride, so for example pin 34 would end up being
> > > 0x22 in hex.
> > >
> > > Fix this by accouting for the stride in register address.
> >
> > Sorry for the bug. Horaitu found this as well and recently submitted
> > patches:
> >
> >
> > https://patchwork.ozlabs.org/project/linux-gpio/patch/20220713193750.4079621-3-horatiu.vultur@xxxxxxxxxxxxx/
> >
> > The second patch in his set fixes both of these issues (reg_stride and
> > max_register).
> >
>
> Yeah, I noticed his patch only after sending this.
> Sorry for the noise.

It doesn't bother me. The only difference was your 0xfc for the max
register, while Horatiu's (per my suggestion) was info->desc->npins.
Just pointing that out in case anyone wants to raise that as a sticking
point.

>
> Regards,
> Robert
>