Re: [PATCH v2 3/4] iio: light: veml3235: extend regmap to add cache

From: Andy Shevchenko
Date: Sun Jan 12 2025 - 11:12:40 EST


On Sun, Jan 12, 2025 at 6:07 PM Javier Carrasco
<javier.carrasco.cruz@xxxxxxxxx> wrote:
>
> On Sun Jan 12, 2025 at 4:18 PM CET, Andy Shevchenko wrote:
> > Tue, Dec 24, 2024 at 11:59:02AM +0100, Javier Carrasco kirjoitti:
> > > The configuration and ID registers are not volatile and are not affected
> > > by read operations (i.e. not precious), making them suitable to be
> > > cached in order to reduce the number of accesses to the device.
> >
> > ...
> >
> > > static const struct regmap_config veml3235_regmap_config = {
> > > .name = "veml3235_regmap",
> > > .reg_bits = 8,
> > > .val_bits = 16,
> > > .max_register = VEML3235_REG_ID,
> > > .val_format_endian = REGMAP_ENDIAN_LITTLE,
> > > + .rd_table = &veml3235_readable_table,
> > > + .wr_table = &veml3235_writable_table,
> > > + .volatile_table = &veml3235_volatile_table,
> > > + .cache_type = REGCACHE_RBTREE,
> >
> > Any specific reason why this is NOT a maple tree?
>
> Hello Andy,
>
> I followed the most common approach in IIO (52 RBTREE vs 2 MAPLE),

But it's historical and can't be taken as an argument.

> assuming that the "low-end systems" comment for the different REGCACHE_*
> applies well to the typical systems that will make use of this driver,
> and many others under IIO. I considered that *possible* performance
> advantage for low-end systems above other considerations, like the
> general rule about using maple tree.

https://elixir.bootlin.com/linux/v6.13-rc3/source/include/linux/regmap.h#L58

"Any new caches
* should usually use the maple tree cache unless they specifically
* require that there are never any allocations at runtime and can't
* provide defaults in which case they should use the flat cache."

Can you reconsider?

--
With Best Regards,
Andy Shevchenko