From: Thomas Gleixner <tglx@linutronix.de>
To: Matti Vaittinen <mazziesaccount@gmail.com>,
Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Cc: Mark Brown <broonie@kernel.org>, Lee Jones <lee@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 07/10] irqdomain: Allow giving name suffix for domain
Date: Mon, 03 Jun 2024 18:38:07 +0200 [thread overview]
Message-ID: <8734pu6ky8.ffs@tglx> (raw)
In-Reply-To: <77c64d75-43fa-47bf-bb3a-e0e49d51189d@gmail.com>
Matti!
On Mon, Jun 03 2024 at 15:19, Matti Vaittinen wrote:
> On 6/3/24 13:20, Thomas Gleixner wrote:
>> On Fri, May 24 2024 at 11:18, Matti Vaittinen wrote:
>> Now you start talking about parent interrupts. Can you please make your
>> mind up and concisely explain what this is about?
>
> I hope I can explain what I am after here. I am also very happy when
> incorrect terminology is pointed out! So, it'd be great to know if I
> should use 'parent' or 'physical IRQ' here after I explain this further.
>
> What I am dealing with is an I2C device (PMIC) which provides two GPIO
> IRQ lines for SOC. This is what I meant by "physical IRQs".
>
> ---------------- INTB IRQ -----------------
> | |-----------------------| |
> | PMIC | | SOC |
> | |-----------------------| |
> ----------------- ERRB IRQ -----------------
>
>
> Both the INTB and ERRB can report various events, and correct event can
> be further read from the PMIC registers when IRQ line is asserted. I
> think this is business as usual.
>
> I'd like to use the regmap_irq for representing these events as separate
> 'IRQs' (which can be handled using handlers registered with
> request_threaded_irq() as usual).
>
> Here, when talking about 'parent IRQ', I was referring to ERRB or INTB
> as 'parent IRQ'. My thinking was that, the regmap IRQ instance uses INTB
> or ERRB as it's parent IRQ, which it splits (demuxes) to separate "child
> IRQs" for the rest of the PMIC drivers to use. I'd be grateful if better
> terms were suggested so that readers can stay on same page with me.
>
> After talking with Mark:
>
> we both thought it'd be cleaner to have separate regmap IRQ instances
> for the ERRB and INTB lines. This makes sense (to me) because a lot of
> (almost all of?) the regmap IRQ internal data describe the IRQ line
> related things like registers related to the IRQ line, IRQ line polarity
> etc. Hence, making single regmap-IRQ instance to support more than one
> <please, add what is the correct term for INTB / ERRB like line> would
> require duplicating a plenty of the regmap data. This would make
> registering an regmap-IRQ entity much more complex and additionally it'd
> also complicate the internals of the regmap-IRQ. It'd be a bit like
> trying to fill and drink a six-pack of lemonade at once, instead of
> going a bottle by bottle :)
This makes a lot more sense now. So what I read out of this in change
log style is:
Devices can have subfunctions where each has its own interrupt
line. Each interrupt line acts as demultiplex interrupt for
subfunction specific interrupts and has its distinct set of registers.
regmap can support such a setup, but the interrupt domain code ends up
to assign the same device name when creating the underlying per
subfunction interrupt domains. This causes name space collision in the
debugfs code and also leads to confusion in other places, e.g.
/proc/interrupts would show two distinct interrupts with the same
domain name and hardware interrupt number.
Instead of working around this in the driver or the regmap code, allow
to provide a name suffix for the domain name when creating the
interrupt domains.
Add the infrastructure to __irq_domain_add() and expose it via
irq_domain_create_linear_named() which is the only function required
by the regmap code to support such setups.
Did I get it halfways right?
Thanks,
tglx
next prev parent reply other threads:[~2024-06-03 16:38 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-24 8:15 [PATCH v2 00/10] Support ROHM BD96801 Scalable PMIC Matti Vaittinen
2024-05-24 8:16 ` [PATCH v2 01/10] dt-bindings: ROHM BD96801 PMIC regulators Matti Vaittinen
2024-05-25 18:39 ` Krzysztof Kozlowski
2024-05-24 8:17 ` [PATCH v2 02/10] dt-bindings: mfd: bd96801 PMIC core Matti Vaittinen
2024-05-25 18:58 ` Krzysztof Kozlowski
2024-05-24 8:17 ` [PATCH v2 03/10] mfd: support ROHM BD96801 " Matti Vaittinen
2024-05-24 8:17 ` [PATCH v2 04/10] regulator: bd96801: ROHM BD96801 PMIC regulators Matti Vaittinen
2024-05-30 12:55 ` Mark Brown
2024-05-24 8:18 ` [PATCH v2 05/10] watchdog: ROHM BD96801 PMIC WDG driver Matti Vaittinen
2024-05-24 8:18 ` [PATCH v2 06/10] MAINTAINERS: Add ROHM BD96801 'scalable PMIC' entries Matti Vaittinen
2024-05-24 8:18 ` [PATCH v2 07/10] irqdomain: Allow giving name suffix for domain Matti Vaittinen
2024-06-03 10:20 ` Thomas Gleixner
2024-06-03 12:19 ` Matti Vaittinen
2024-06-03 13:40 ` Matti Vaittinen
2024-06-03 16:38 ` Thomas Gleixner [this message]
2024-06-03 17:38 ` Matti Vaittinen
2024-06-03 21:03 ` Thomas Gleixner
2024-05-24 8:19 ` [PATCH v2 08/10] regmap: Allow setting IRQ domain name suffix Matti Vaittinen
2024-05-24 8:19 ` [PATCH v2 09/10] mfd: bd96801: Add ERRB IRQ Matti Vaittinen
2024-05-24 8:19 ` [PATCH v2 10/10] regulator: " Matti Vaittinen
2024-05-30 12:56 ` 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=8734pu6ky8.ffs@tglx \
--to=tglx@linutronix.de \
--cc=broonie@kernel.org \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matti.vaittinen@fi.rohmeurope.com \
--cc=mazziesaccount@gmail.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