Re: [PATCH 2/3] pinctrl: cy8c95x0: Use regmap ranges

From: Andy Shevchenko
Date: Fri Jun 07 2024 - 16:29:48 EST


Tue, May 21, 2024 at 08:34:18PM +0300, Andy Shevchenko kirjoitti:
> On Tue, May 21, 2024 at 6:26 PM Patrick Rudolph
> <patrick.rudolph@xxxxxxxxxxxxx> wrote:
> >
> > Instead of implementing a custom register paging mechanism in
> > the driver use the existing regmap ranges feature.
>
> driver, use

...

> > +static const struct regmap_range_cfg cy8c95x0_ranges[] = {
> > + {
> > + .range_min = CY8C95X0_VIRTUAL,
> > + .range_max = 0, /* Updated at runtime */
>
> This and similar comments are misleading since the data is defined as
> const. Updated --> Filled or alike here and elsewhere.
>
> > + .selector_reg = CY8C95X0_PORTSEL,
> > + .selector_mask = 0x07,
> > + .selector_shift = 0x0,
> > + .window_start = CY8C95X0_INTMASK,
> > + .window_len = MUXED_STRIDE,
> > + }
> > };

...

> > + regcache_cache_only(chip->regmap, true);
> > + regmap_update_bits(chip->regmap, off, mask & val, 0);
> > + regcache_cache_only(chip->regmap, false);
>
> A side note: It's strange to see mask & val, 0 in the parameters of
> regmap calls. Perhaps refactor this (in a separate patch) to use
> standard approach?

...

> > + memcpy(&regmap_range_conf, &cy8c95x0_ranges[0], sizeof(regmap_range_conf));
>
> memcpy(&regmap_range_conf, cy8c95x0_ranges, sizeof(regmap_range_conf));

I hope the all above can be tweaked by Linus when applying.

...

> Note, if you are not using --histogram diff algo, please start using
> it from the next version of this series.
>
> P.S. I will test the next version on Intel Galileo Gen1 as currently I
> have some issues with the HW I need to fix first.

Unfortunately I wasn't able to ressurect the HW and now I'm going to be off for
a while. Let's go with this and if any problem appears, I probably can try to
fix myself.

Reviewed-by: Andy Shevchenko <andy@xxxxxxxxxx>

--
With Best Regards,
Andy Shevchenko