Re: [PATCH 09/12] irqchip: cirrus: Add driver for Cirrus Logic CS48L31/32/33 codecs

Marc Zyngier
2022-11-10T12:01:55Z

On Thu, 10 Nov 2022 11:22:26 +0000,
Richard Fitzgerald <rf@opensource.cirrus.com> wrote:
>
> On 10/11/2022 08:02, Marc Zyngier wrote:
> > On Wed, 09 Nov 2022 16:53:28 +0000,
> > Richard Fitzgerald <rf@opensource.cirrus.com> wrote:
> >>
> >> The Cirrus Logic CS48L31/32/33 audio codecs contain a programmable
> >> interrupt controller with a variety of interrupt sources, including
> >> GPIOs that can be used as interrupt inputs.
> >>
> >> This driver provides the handling for the interrupt controller. As the
> >> codec is accessed via regmap, the generic regmap_irq functionality
> >> is used to do most of the work.
> >>
> >
> > I cannot spot a shred of interrupt controller code in there. This
>
> It is providing support for handling an interrupt controller so that
> other drivers can bind to those interrupts. It's just that regmap
> provides a lot of generic implementation for SPI-connected interrupt
> controllers so we don't need to open-code all that in the
> irqchip driver.

And thus none of that code needs to live in drivers/irqchip.

>
> > belongs IMO to the MFD code.
>
> We did once put interrupt support in MFD for an older product line but
> the MFD maintainer doesn't like the MFD being a dumping-ground for
> random other functionality that have their own subsystems.

I don't like this stuff either. All this code is a glorified set of
interrupt handlers and #defines that only hide the lack of a proper DT
binding to express the interrupt routing (it feels like looking at
board files from 10 years ago).

None of that belongs in the irqchip code.

>
> > It is also a direct copy of the existing
> > irq-madera.c code, duplicated for no obvious reason.
>
> It's not a duplicate. The register map of this device is different
> (different addressing, 32-bit registers not 16-bit)

And? How hard is it to implement an indirection containing the
register map and the relevant callbacks? /roll-eyes

M.

--
Without deviation from the norm, progress is not possible.