From: Marc Zyngier <maz@kernel.org>
To: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: <broonie@kernel.org>, <lee@kernel.org>, <robh+dt@kernel.org>,
<krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>,
<tglx@linutronix.de>, <linus.walleij@linaro.org>,
<vkoul@kernel.org>, <lgirdwood@gmail.com>,
<yung-chuan.liao@linux.intel.com>, <sanyog.r.kale@intel.com>,
<pierre-louis.bossart@linux.intel.com>,
<alsa-devel@alsa-project.org>, <patches@opensource.cirrus.com>,
<devicetree@vger.kernel.org>, <linux-gpio@vger.kernel.org>,
<linux-spi@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 07/10] irqchip/cs42l43: Add support for the cs42l43 IRQs
Date: Fri, 12 May 2023 17:07:45 +0100 [thread overview]
Message-ID: <86mt29mt2m.wl-maz@kernel.org> (raw)
In-Reply-To: <20230512153933.GH68926@ediswmail.ad.cirrus.com>
On Fri, 12 May 2023 16:39:33 +0100,
Charles Keepax <ckeepax@opensource.cirrus.com> wrote:
>
> On Fri, May 12, 2023 at 04:10:05PM +0100, Marc Zyngier wrote:
> > On Fri, 12 May 2023 13:28:35 +0100,
> > Charles Keepax <ckeepax@opensource.cirrus.com> wrote:
> > >
> > > The CS42L43 is an audio CODEC with integrated MIPI SoundWire interface
> > > (Version 1.2.1 compliant), I2C, SPI, and I2S/TDM interfaces designed
> > > for portable applications. It provides a high dynamic range, stereo
> > > DAC for headphone output, two integrated Class D amplifiers for
> > > loudspeakers, and two ADCs for wired headset microphone input or
> > > stereo line input. PDM inputs are provided for digital microphones.
> > >
> > > The IRQ chip provides IRQ functionality both to other parts of the
> > > cs42l43 device and to external devices that wish to use its IRQs.
> >
> > Sorry, but this isn't much of an interrupt controller driver. A modern
> > interrupt controller driver is firmware-driven (DT or ACPI, pick your
> > poison), uses irq domains, and uses the irqchip API.
> >
>
> Apologies but I really need a little help clarifying the issues
> here. I am totally happy to fix things up but might need a couple
> pointers.
>
> 1) uses the irqchip API / uses irq domains
>
> The driver does use both the irqchip API and domains, what
> part of the IRQ API are we not using that we should be?
>
> The driver registers an irq domain using
> irq_domain_create_linear. It requests its parent IRQ using
> request_threaded_irq. It passes IRQs onto the devices requesting
> IRQs from it using handle_nested_irq and irq_find_mapping.
>
> Is the objection here that regmap is making these calls for us,
> rather than them being hard coded into this driver?
That's one of the reasons. Look at the existing irqchip drivers: they
have nothing in common with yours. The regmap irqchip abstraction may
be convenient for what you are doing, but the result isn't really an
irqchip driver. It is something that is a small bit of a larger device
and not an interrupt controller driver on its own. The irqchip
subsystem is there for "first class" interrupt controllers.
>
> 2) driver is firmware-driven (DT or ACPI, pick your poison)
>
> The irq chip has representation in firmware, in fact we have
> tested this on both ACPI and DT. Other devices can request
> IRQs from it through firmware, same as they can for any other
> IRQ chip.
That's not what I'm talking about.
> Is the objection here the table mapping the register fields that
> are provided as an IRQ on the device?
I'm referring to this sort of construct:
+ CS42L43_IRQ_REG(HP_STARTUP_DONE, MSM),
+ CS42L43_IRQ_REG(HP_SHUTDOWN_DONE, MSM),
+ CS42L43_IRQ_REG(HSDET_DONE, MSM),
+ CS42L43_IRQ_REG(TIPSENSE_UNPLUG_DB, MSM),
+ CS42L43_IRQ_REG(TIPSENSE_PLUG_DB, MSM),
+ CS42L43_IRQ_REG(RINGSENSE_UNPLUG_DB, MSM),
+ CS42L43_IRQ_REG(RINGSENSE_PLUG_DB, MSM),
+ CS42L43_IRQ_REG(TIPSENSE_UNPLUG_PDET, MSM),
+ CS42L43_IRQ_REG(TIPSENSE_PLUG_PDET, MSM),
+ CS42L43_IRQ_REG(RINGSENSE_UNPLUG_PDET, MSM),
+ CS42L43_IRQ_REG(RINGSENSE_PLUG_PDET, MSM),
Why isn't this described in firmware tables? Why doesn't it need to be
carried as part of the driver? Is "CLASS_D_AMP" something an interrupt
controller driver should care about?
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2023-05-12 16:07 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-12 12:28 [PATCH 00/10] Add cs42l43 PC focused SoundWire CODEC Charles Keepax
2023-05-12 12:28 ` [PATCH 01/10] soundwire: bus: Allow SoundWire peripherals to register IRQ handlers Charles Keepax
2023-05-12 13:45 ` Pierre-Louis Bossart
2023-05-12 16:02 ` Charles Keepax
2023-05-12 16:34 ` Pierre-Louis Bossart
2023-05-12 16:43 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 02/10] ASoC: soc-component: Add notify control helper function Charles Keepax
2023-05-12 12:28 ` [PATCH 03/10] ASoC: ak4118: Update to use new component control notify helper Charles Keepax
2023-05-12 13:48 ` Pierre-Louis Bossart
2023-05-12 15:42 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 04/10] ASoC: wm_adsp: Update to use new component control notify helepr Charles Keepax
2023-05-12 12:28 ` [PATCH 05/10] dt-bindings: mfd: cirrus,cs42l43: Add initial DT binding Charles Keepax
2023-05-12 15:23 ` Krzysztof Kozlowski
2023-05-12 16:15 ` Charles Keepax
2023-05-13 18:05 ` Krzysztof Kozlowski
2023-05-12 15:25 ` Krzysztof Kozlowski
2023-05-12 16:18 ` Charles Keepax
2023-05-13 18:08 ` Krzysztof Kozlowski
2023-05-15 10:02 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 06/10] mfd: cs42l43: Add support for cs42l43 core driver Charles Keepax
2023-05-12 14:52 ` Pierre-Louis Bossart
2023-05-18 10:05 ` Charles Keepax
2023-05-12 15:16 ` Krzysztof Kozlowski
2023-05-18 10:24 ` Charles Keepax
2023-05-18 15:16 ` Pierre-Louis Bossart
2023-05-18 16:15 ` Richard Fitzgerald
2023-05-18 16:47 ` Pierre-Louis Bossart
2023-05-19 9:24 ` Charles Keepax
2023-05-12 12:28 ` [PATCH 07/10] irqchip/cs42l43: Add support for the cs42l43 IRQs Charles Keepax
2023-05-12 15:10 ` Marc Zyngier
2023-05-12 15:39 ` Charles Keepax
2023-05-12 16:07 ` Marc Zyngier [this message]
2023-05-12 16:42 ` Charles Keepax
2023-05-15 1:08 ` Mark Brown
2023-05-15 9:57 ` Charles Keepax
2023-05-16 10:07 ` Lee Jones
2023-05-15 11:25 ` Lee Jones
2023-05-16 8:51 ` Marc Zyngier
2023-05-16 10:09 ` Lee Jones
2023-05-16 10:23 ` Marc Zyngier
2023-05-16 10:41 ` Charles Keepax
2023-05-12 15:27 ` Krzysztof Kozlowski
2023-05-12 12:28 ` [PATCH 08/10] pinctrl: cs42l43: Add support for the cs42l43 Charles Keepax
2023-05-12 15:30 ` Krzysztof Kozlowski
2023-05-12 15:54 ` Charles Keepax
2023-05-13 18:00 ` Krzysztof Kozlowski
2023-05-12 19:19 ` andy.shevchenko
2023-05-15 10:13 ` Charles Keepax
2023-05-16 19:03 ` Andy Shevchenko
2023-05-17 10:13 ` Charles Keepax
2023-05-17 13:59 ` Andy Shevchenko
2023-05-17 14:11 ` Pierre-Louis Bossart
2023-05-17 14:30 ` Mark Brown
2023-05-12 12:28 ` [PATCH 09/10] spi: cs42l43: Add SPI controller support Charles Keepax
2023-05-12 19:03 ` andy.shevchenko
2023-05-12 12:28 ` [PATCH 10/10] ASoC: cs42l43: Add support for the cs42l43 Charles Keepax
2023-05-15 15:21 ` (subset) [PATCH 00/10] Add cs42l43 PC focused SoundWire CODEC Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86mt29mt2m.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=robh+dt@kernel.org \
--cc=sanyog.r.kale@intel.com \
--cc=tglx@linutronix.de \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).