[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86pmdvow5y.wl-maz@kernel.org>
Date: Thu, 10 Nov 2022 12:01:45 +0000
From: Marc Zyngier <maz@...nel.org>
To: Richard Fitzgerald <rf@...nsource.cirrus.com>
Cc: <lee@...nel.org>, <robh+dt@...nel.org>,
<krzysztof.kozlowski+dt@...aro.org>, <linus.walleij@...aro.org>,
<broonie@...nel.org>, <tglx@...utronix.de>,
<alsa-devel@...a-project.org>, <devicetree@...r.kernel.org>,
<linux-gpio@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<patches@...nsource.cirrus.com>
Subject: Re: [PATCH 09/12] irqchip: cirrus: Add driver for Cirrus Logic CS48L31/32/33 codecs
On Thu, 10 Nov 2022 11:22:26 +0000,
Richard Fitzgerald <rf@...nsource.cirrus.com> wrote:
>
> On 10/11/2022 08:02, Marc Zyngier wrote:
> > On Wed, 09 Nov 2022 16:53:28 +0000,
> > Richard Fitzgerald <rf@...nsource.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.
Powered by blists - more mailing lists