Re: [PATCH v2 1/2] gpiolib: Fix a mess with the GPIO_* flags
From: Andy Shevchenko
Date: Wed Apr 17 2024 - 04:46:04 EST
On Tue, Apr 16, 2024 at 11:07:58PM +0200, Bartosz Golaszewski wrote:
> On Tue, Apr 16, 2024 at 4:05 PM Andy Shevchenko
> <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> >
> > On Tue, Apr 16, 2024 at 02:22:09PM +0200, Linus Walleij wrote:
> > > On Fri, Apr 12, 2024 at 9:44 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote:
> > >
> > > > IIUC include/dt-bindings/ headers should only be used by DT sources
> > > > and code that parses the OF properties.
> > >
> > > That's what I have come to understand as well.
> > >
> > > I wonder if there is something that can be done to enforce it?
> > >
> > > Ideally the code that parses OF properties should have to
> > > opt in to get access to the <dt-bindings/*> namespace.
> >
> > Whatever you, guys, come up with as a solution, can it be fixed sooner than later?
> > I mean, I would appreciate if somebody got it done for v6.9-rcX/v6.10-rc1 so we don't
> > need to look into this again.
>
> I'm not sure you got what I was saying. I don't think this can be
> fixed quickly. This is just another bunch of technical debt that will
> have to be addressed carefully on a case-by-case basis and run through
> autobuilders in all possible configurations.
>
> This type of include-related issues is always brittle and will lead to
> build failures if we don't consider our moves.
I proposed a quick fix which was rejected. I think this is still doable in a
few steps:
- align constant values in DT and enum
- drop usage of DT in the kernel code (That's what you want IIUC, however
I disagree with this from technical perspective as DT constants can be used
in the code as long as they are mapped 1:1 to what code does. That's current
state of affairs. OTOH semantically this may be an issue.)
- restore enum usage treewide (?)
Again, the problem now is only in open source / open drain configurations
and there are only a few users of these flags _in kernel_. I do not see
why it can not be done in one or two evenings time range.
P.S>
Most of the time I spent when prepared the proposed fix is digging the history
and trying to understand how comes that we have desynchronisation of the values
over the time. The output of that is the list of Fixes tags.
--
With Best Regards,
Andy Shevchenko