Re: [PATCH v1 07/10] spi: pxa2xx: Provide num-cs for Sharp PDAs via device properties

Andy Shevchenko
2024-03-26T20:12:18Z

On Tue, Mar 26, 2024 at 08:02:57PM +0000, Mark Brown wrote:
> On Tue, Mar 26, 2024 at 08:50:04PM +0200, Andy Shevchenko wrote:
> > On Tue, Mar 26, 2024 at 06:21:48PM +0000, Mark Brown wrote:
> > > On Tue, Mar 26, 2024 at 08:07:57PM +0200, Andy Shevchenko wrote:
>
> > > > Since driver can parse num-cs device property, replace platform data
> > > > with this new approach.
>
> > > But why?
>
> > To be able to hide the header's contents from public.
> > Should I update the commit message?
>
> That would definitely help, but it's hard to see what the actual benefit
> is here. It's removing platform data without doing the more difficult
> bit where the platform gets converted to DT.

Will do in v2.

> > > > +static const struct property_entry spitz_spi_properties[] = {
> > > > + PROPERTY_ENTRY_U32("num-cs", 3),
> > > > + { }
> > > > +};
>
> > > This is just platform data with less validation AFAICT.
>
> > I'm not sure what validation you are expecting here. It should be done via
>
> Well, the problem with swnode is that there's no validation to expect -
> it's an inherent problem with swnode.

I do not object this.

> > DT schema ideally when the platform gets converted to DT. This change is
> > an interim to that (at least it makes kernel side better). After the platform
> > code may be gone completely or converted. If the latter happens, we got
> > the validation back.
>
> It is not clear to me that this makes the kernel side better, it just
> seems to be rewriting the platform data for the sake of it. If it was
> converting to DT there'd be some stuff from it being DT but this keeps
> everything as in kernel as board files, just in a more complex form.

Not really. The benefits with swnode conversion are the following:

- reducing custom APIs / data types between _shared_ (in a sense of
supporting zillion different platforms) driver and a certain board
file

- as an effect of the above, reducing kernel code base, and as the result
make maintenance easier and bug-free for that parts

- preparing a driver to be ready for any old board file conversion to DT
as it reduces that churn (you won't need to touch the driver code)

- ...anything else I forgot to mention...

> > In any case it's not worse than plain DT property handling in the kernel.
> > The validation in that case is done elsewhere. Since the property is defined
> > in board files the assumed validation is done during development/review
> > stages. But OTOH for the legacy code we need not to touch the property
> > provider more than once. We are _not_ expecting this to be spread.
>
> I'm guessing you're just checking this by inspection though...

Yes, we seems do not have any tool to perform a such against software nodes.

--
With Best Regards,
Andy Shevchenko