Re: [PATCH v4 12/15] pinctrl: Add AXP192 pin control driver

From: Andy Shevchenko
Date: Fri Jul 01 2022 - 16:06:45 EST


On Fri, Jul 1, 2022 at 5:36 PM Aidan MacDonald
<aidanmacdonald.0x0@xxxxxxxxx> wrote:
> Andy Shevchenko <andy.shevchenko@xxxxxxxxx> writes:
> > On Wed, Jun 29, 2022 at 4:30 PM Aidan MacDonald
> > <aidanmacdonald.0x0@xxxxxxxxx> wrote:

...

> >> +struct axp192_pctl_function {
> >> + const char *name;
> >> + /* Mux value written to the control register to select the function (-1 if unsupported) */
> >> + const u8 *muxvals;
> >> + const char * const *groups;
> >> + unsigned int ngroups;
> >> +};
> >
> > Can it be replaced by struct function_desc?
> > https://elixir.bootlin.com/linux/latest/source/drivers/pinctrl/pinmux.h#L130
>
> That'd work, but using the generic infrastructure doesn't allow me to
> simplify anything -- I can eliminate three trivial functions, but the
> generic code is higher overhead (extra allocations, radix trees, ...)

I really don't see how it gets into extra allocations. Either way you
have a pointer to opaque data or in your current code it's called
muxvals. Other fields seem 1:1 what is in struct function_desc. The
code will be probably the same.

I.o.w. I'm talking of eliminating data type, and not about simplifying
the code by fully switching to generic infrastructure.

> so I'd prefer to stick with the current approach.


--
With Best Regards,
Andy Shevchenko