mbox series

[0/3] gpiolib: convert 'devprop_gpiochip_set_names' to support multiple gpiochip per device

Message ID 20210708070429.31871-1-sergio.paracuellos@gmail.com
Headers show
Series gpiolib: convert 'devprop_gpiochip_set_names' to support multiple gpiochip per device | expand

Message

Sergio Paracuellos July 8, 2021, 7:04 a.m. UTC
There are some unfortunate cases where the DT representation
of the device and the Linux internal representation differs.
Such drivers for devices are forced to implement a custom function
to avoid the core code 'devprop_gpiochip_set_names' to be executed
since in any other case every gpiochip inside will got repeated
names through its internal gpiochip banks. To avoid this antipattern
this changes are introduced trying to adapt core 'devprop_gpiochip_set_names'
to get a correct behaviour for every single situation.

This series introduces a new 'offset' field in the gpiochip structure
that can be used for those unfortunate drivers that must define multiple
gpiochips per device.

Drivers affected by this situation are also updated. These are
'gpio-mt7621' and 'gpio-brcmstb'.

Motivation for this series available at [0].

Thanks in advance for your feedback.

Best regards,
    Sergio Paracuellos

[0]: https://lkml.org/lkml/2021/6/26/198

Sergio Paracuellos (3):
  gpiolib: convert 'devprop_gpiochip_set_names' to support multiple
    gpiochip baks per device
  gpio: mt7621: support gpio-line-names property
  gpio: brcmstb: remove custom 'brcmstb_gpio_set_names'

 drivers/gpio/gpio-brcmstb.c | 45 +------------------------------------
 drivers/gpio/gpio-mt7621.c  |  1 +
 drivers/gpio/gpiolib.c      | 34 +++++++++++++++++++++++-----
 include/linux/gpio/driver.h |  4 ++++
 4 files changed, 34 insertions(+), 50 deletions(-)

Comments

Andy Shevchenko July 8, 2021, 8:02 a.m. UTC | #1
On Thu, Jul 8, 2021 at 10:04 AM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
>
> There are some unfortunate cases where the DT representation
> of the device and the Linux internal representation differs.
> Such drivers for devices are forced to implement a custom function
> to avoid the core code 'devprop_gpiochip_set_names' to be executed
> since in any other case every gpiochip inside will got repeated
> names through its internal gpiochip banks. To avoid this antipattern
> this changes are introduced trying to adapt core 'devprop_gpiochip_set_names'
> to get a correct behaviour for every single situation.
>
> This series introduces a new 'offset' field in the gpiochip structure
> that can be used for those unfortunate drivers that must define multiple
> gpiochips per device.
>
> Drivers affected by this situation are also updated. These are
> 'gpio-mt7621' and 'gpio-brcmstb'.
>
> Motivation for this series available at [0].
>
> Thanks in advance for your feedback.

Thanks for doing this!
LGTM,
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Best regards,
>     Sergio Paracuellos
>
> [0]: https://lkml.org/lkml/2021/6/26/198
>
> Sergio Paracuellos (3):
>   gpiolib: convert 'devprop_gpiochip_set_names' to support multiple
>     gpiochip baks per device
>   gpio: mt7621: support gpio-line-names property
>   gpio: brcmstb: remove custom 'brcmstb_gpio_set_names'
>
>  drivers/gpio/gpio-brcmstb.c | 45 +------------------------------------
>  drivers/gpio/gpio-mt7621.c  |  1 +
>  drivers/gpio/gpiolib.c      | 34 +++++++++++++++++++++++-----
>  include/linux/gpio/driver.h |  4 ++++
>  4 files changed, 34 insertions(+), 50 deletions(-)
>
> --
> 2.25.1
>
Sergio Paracuellos July 8, 2021, 8:40 a.m. UTC | #2
On Thu, Jul 8, 2021 at 10:02 AM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
>
> On Thu, Jul 8, 2021 at 10:04 AM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> >
> > There are some unfortunate cases where the DT representation
> > of the device and the Linux internal representation differs.
> > Such drivers for devices are forced to implement a custom function
> > to avoid the core code 'devprop_gpiochip_set_names' to be executed
> > since in any other case every gpiochip inside will got repeated
> > names through its internal gpiochip banks. To avoid this antipattern
> > this changes are introduced trying to adapt core 'devprop_gpiochip_set_names'
> > to get a correct behaviour for every single situation.
> >
> > This series introduces a new 'offset' field in the gpiochip structure
> > that can be used for those unfortunate drivers that must define multiple
> > gpiochips per device.
> >
> > Drivers affected by this situation are also updated. These are
> > 'gpio-mt7621' and 'gpio-brcmstb'.
> >
> > Motivation for this series available at [0].
> >
> > Thanks in advance for your feedback.
>
> Thanks for doing this!
> LGTM,
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

Thanks for your feedback and support!

>
> > Best regards,
> >     Sergio Paracuellos
> >
> > [0]: https://lkml.org/lkml/2021/6/26/198
> >
> > Sergio Paracuellos (3):
> >   gpiolib: convert 'devprop_gpiochip_set_names' to support multiple
> >     gpiochip baks per device
> >   gpio: mt7621: support gpio-line-names property
> >   gpio: brcmstb: remove custom 'brcmstb_gpio_set_names'
> >
> >  drivers/gpio/gpio-brcmstb.c | 45 +------------------------------------
> >  drivers/gpio/gpio-mt7621.c  |  1 +
> >  drivers/gpio/gpiolib.c      | 34 +++++++++++++++++++++++-----
> >  include/linux/gpio/driver.h |  4 ++++
> >  4 files changed, 34 insertions(+), 50 deletions(-)
> >
> > --
> > 2.25.1
> >
>
>
> --
> With Best Regards,
> Andy Shevchenko
Sergio Paracuellos July 27, 2021, 6:02 a.m. UTC | #3
On Thu, Jul 8, 2021 at 9:04 AM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
>
> There are some unfortunate cases where the DT representation
> of the device and the Linux internal representation differs.
> Such drivers for devices are forced to implement a custom function
> to avoid the core code 'devprop_gpiochip_set_names' to be executed
> since in any other case every gpiochip inside will got repeated
> names through its internal gpiochip banks. To avoid this antipattern
> this changes are introduced trying to adapt core 'devprop_gpiochip_set_names'
> to get a correct behaviour for every single situation.
>
> This series introduces a new 'offset' field in the gpiochip structure
> that can be used for those unfortunate drivers that must define multiple
> gpiochips per device.
>
> Drivers affected by this situation are also updated. These are
> 'gpio-mt7621' and 'gpio-brcmstb'.
>
> Motivation for this series available at [0].
>
> Thanks in advance for your feedback.
>
> Best regards,
>     Sergio Paracuellos
>
> [0]: https://lkml.org/lkml/2021/6/26/198
>
> Sergio Paracuellos (3):
>   gpiolib: convert 'devprop_gpiochip_set_names' to support multiple
>     gpiochip baks per device
>   gpio: mt7621: support gpio-line-names property
>   gpio: brcmstb: remove custom 'brcmstb_gpio_set_names'
>
>  drivers/gpio/gpio-brcmstb.c | 45 +------------------------------------
>  drivers/gpio/gpio-mt7621.c  |  1 +
>  drivers/gpio/gpiolib.c      | 34 +++++++++++++++++++++++-----
>  include/linux/gpio/driver.h |  4 ++++
>  4 files changed, 34 insertions(+), 50 deletions(-)

Hi!

Linus, Bartosz, any comments on this series?

Best regards,
    Sergio Paracuellos
>
> --
> 2.25.1
>
Bartosz Golaszewski July 27, 2021, 11:35 a.m. UTC | #4
On Tue, Jul 27, 2021 at 8:02 AM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
>
> On Thu, Jul 8, 2021 at 9:04 AM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> >
> > There are some unfortunate cases where the DT representation
> > of the device and the Linux internal representation differs.
> > Such drivers for devices are forced to implement a custom function
> > to avoid the core code 'devprop_gpiochip_set_names' to be executed
> > since in any other case every gpiochip inside will got repeated
> > names through its internal gpiochip banks. To avoid this antipattern
> > this changes are introduced trying to adapt core 'devprop_gpiochip_set_names'
> > to get a correct behaviour for every single situation.
> >
> > This series introduces a new 'offset' field in the gpiochip structure
> > that can be used for those unfortunate drivers that must define multiple
> > gpiochips per device.
> >
> > Drivers affected by this situation are also updated. These are
> > 'gpio-mt7621' and 'gpio-brcmstb'.
> >
> > Motivation for this series available at [0].
> >
> > Thanks in advance for your feedback.
> >
> > Best regards,
> >     Sergio Paracuellos
> >
> > [0]: https://lkml.org/lkml/2021/6/26/198
> >
> > Sergio Paracuellos (3):
> >   gpiolib: convert 'devprop_gpiochip_set_names' to support multiple
> >     gpiochip baks per device
> >   gpio: mt7621: support gpio-line-names property
> >   gpio: brcmstb: remove custom 'brcmstb_gpio_set_names'
> >
> >  drivers/gpio/gpio-brcmstb.c | 45 +------------------------------------
> >  drivers/gpio/gpio-mt7621.c  |  1 +
> >  drivers/gpio/gpiolib.c      | 34 +++++++++++++++++++++++-----
> >  include/linux/gpio/driver.h |  4 ++++
> >  4 files changed, 34 insertions(+), 50 deletions(-)
>
> Hi!
>
> Linus, Bartosz, any comments on this series?
>

Looks good, but I was thinking you were going to address Gregory's
points first and resend a v2?

Bartosz
Sergio Paracuellos July 27, 2021, 11:40 a.m. UTC | #5
Hi,

On Tue, Jul 27, 2021 at 1:35 PM Bartosz Golaszewski
<bgolaszewski@baylibre.com> wrote:
>
> On Tue, Jul 27, 2021 at 8:02 AM Sergio Paracuellos
> <sergio.paracuellos@gmail.com> wrote:
> >
> > On Thu, Jul 8, 2021 at 9:04 AM Sergio Paracuellos
> > <sergio.paracuellos@gmail.com> wrote:
> > >
> > > There are some unfortunate cases where the DT representation
> > > of the device and the Linux internal representation differs.
> > > Such drivers for devices are forced to implement a custom function
> > > to avoid the core code 'devprop_gpiochip_set_names' to be executed
> > > since in any other case every gpiochip inside will got repeated
> > > names through its internal gpiochip banks. To avoid this antipattern
> > > this changes are introduced trying to adapt core 'devprop_gpiochip_set_names'
> > > to get a correct behaviour for every single situation.
> > >
> > > This series introduces a new 'offset' field in the gpiochip structure
> > > that can be used for those unfortunate drivers that must define multiple
> > > gpiochips per device.
> > >
> > > Drivers affected by this situation are also updated. These are
> > > 'gpio-mt7621' and 'gpio-brcmstb'.
> > >
> > > Motivation for this series available at [0].
> > >
> > > Thanks in advance for your feedback.
> > >
> > > Best regards,
> > >     Sergio Paracuellos
> > >
> > > [0]: https://lkml.org/lkml/2021/6/26/198
> > >
> > > Sergio Paracuellos (3):
> > >   gpiolib: convert 'devprop_gpiochip_set_names' to support multiple
> > >     gpiochip baks per device
> > >   gpio: mt7621: support gpio-line-names property
> > >   gpio: brcmstb: remove custom 'brcmstb_gpio_set_names'
> > >
> > >  drivers/gpio/gpio-brcmstb.c | 45 +------------------------------------
> > >  drivers/gpio/gpio-mt7621.c  |  1 +
> > >  drivers/gpio/gpiolib.c      | 34 +++++++++++++++++++++++-----
> > >  include/linux/gpio/driver.h |  4 ++++
> > >  4 files changed, 34 insertions(+), 50 deletions(-)
> >
> > Hi!
> >
> > Linus, Bartosz, any comments on this series?
> >
>
> Looks good, but I was thinking you were going to address Gregory's
> points first and resend a v2?

I was waiting for your opinion about the last warning stuff Gregory
commented on PATCH 1 since it is not a good way to distinguish between
normal (1 gpiochip) and special cases (multiple gpiochips). I think
since that can happen normally we can just remove the warning. With
that clear I properly fix it up and resend v2.

>
> Bartosz

Best regards,
    Sergio Paracuellos