Re: [PATCH v2 00/10] gpio: dwapb: Refactor GPIO resources initialization

From: Serge Semin
Date: Thu Jul 30 2020 - 10:16:44 EST


Wou, I've confused my SOB tag here.

Linus, if no additional patchset revision is required, could you please
replace it with:
Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
?

Alternatively I could resend the series with correct version of the tag.

-Sergey

On Thu, Jul 30, 2020 at 04:55:26PM +0300, Serge Semin wrote:
> This series is about the DW APB GPIO device initialization procedure
> cleaning up. First of all it has been discovered that having a
> vendor-specific "snps,nr-gpios" property isn't only redundant but also
> might be dangerous (see the commit log for details). Instead we suggest to
> use the generic "ngpios" property to define a number of GPIOs each DW APB
> GPIO controller port supports. Secondly seeing a tendency of the other
> GPIO drivers getting converted to using the GPIO-lib-based IRQ-chip
> interface this series provides a patch, which replaces the DW APB GPIO
> driver Generic IRQ-chip implementation with the GPIO-lib IRQ-chip one.
> Finally the DW APB GPIO device probe procedure is simplified by
> converting the code to be using the device managed resources for the
> reference clocks initialization, reset control assertion/de-assertion
> and GPIO-chip registration.
>
> Some additional cleanups like replacing a number of GPIOs literal with a
> corresponding macro and grouping the IRQ handlers up in a single place of
> the driver are also introduced in this patchset.
>
> Link: https://lore.kernel.org/linux-gpio/20200723013858.10766-1-Sergey.Semin@xxxxxxxxxxxxxxxxxxxx/
> Changelog v2:
> - Replace gc->to_irq() with irq_find_mapping() method.
> - Refactor dwapb_irq_set_type() method to directly set IRQ flow handler
> instead of using a temporary variable.
> - Initialize GPIOlib IRQ-chip settings before calling request_irq()
> method.
> - Add a notice regarding regression of commit 6a2f4b7dadd5 ("gpio:
> dwapb: use a second irq chip").
> - Move the acpi_gpiochip_{request,free}_interrupts() methods invocation
> removal to a dedicated patch.
> - Move GPIO-chip to_irq callback removal to a dedicated patch.
> - Add a patch which replaces a max number of GPIO literals with a macro.
> - Introduce dwapb_convert_irqs() method to convert the sparse parental
> IRQs array into an array of linearly distributed IRQs correctly
> perceived by GPIO-lib.
>
> Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>
> Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Cc: Alexey Malahov <Alexey.Malahov@xxxxxxxxxxxxxxxxxxxx>
> Cc: Pavel Parkhomenko <Pavel.Parkhomenko@xxxxxxxxxxxxxxxxxxxx>
> Cc: Rob Herring <robh+dt@xxxxxxxxxx>
> Cc: linux-gpio@xxxxxxxxxxxxxxx
> Cc: devicetree@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
>
> Serge Semin (10):
> dt-bindings: gpio: dwapb: Add ngpios property support
> gpio: dwapb: Add ngpios DT-property support
> gpio: dwapb: Move MFD-specific IRQ handler
> gpio: dwapb: Add max GPIOs macro
> gpio: dwapb: Convert driver to using the GPIO-lib-based IRQ-chip
> gpio: dwapb: Discard GPIO-to-IRQ mapping function
> gpio: dwapb: Discard ACPI GPIO-chip IRQs request
> gpio: dwapb: Get reset control by means of resource managed interface
> gpio: dwapb: Get clocks by means of resource managed interface
> gpio: dwapb: Use resource managed GPIO-chip add data method
>
> .../bindings/gpio/snps,dw-apb-gpio.yaml | 6 +
> drivers/gpio/Kconfig | 2 +-
> drivers/gpio/gpio-dwapb.c | 340 +++++++++---------
> include/linux/platform_data/gpio-dwapb.h | 4 +-
> 4 files changed, 178 insertions(+), 174 deletions(-)
>
> --
> 2.27.0
>