From: Stephen Warren <swarren@wwwdotorg.org>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Liam Girdwood <lrg@ti.com>,
linux-kernel@vger.kernel.org,
Samuel Ortiz <sameo@linux.intel.com>,
Stephen Warren <swarren@nvidia.com>
Subject: Re: [PATCH 3/3] regmap: enhance regmap-irq to handle 1 IRQ feeding n chips
Date: Tue, 31 Jul 2012 17:18:36 -0600 [thread overview]
Message-ID: <501867CC.50909@wwwdotorg.org> (raw)
In-Reply-To: <20120730172538.GM4468@opensource.wolfsonmicro.com>
On 07/30/2012 11:25 AM, Mark Brown wrote:
> On Mon, Jul 30, 2012 at 11:00:04AM -0600, Stephen Warren wrote:
>> On 07/29/2012 02:36 PM, Mark Brown wrote:
>>> On Fri, Jul 27, 2012 at 01:01:56PM -0600, Stephen Warren wrote:
>
>> I had implemented this in regmap since you'd specifically mentioned
>> doing that. If I convert the code not to use separate IRQ domains for
>
> I think what I'd said was that we should factor it out rather than that
> it should be specifically done in regmap.
>
>> this, would that be acceptable?
>
> Probably.
The more I think about this, the more I prefer the way the way it is in
the patch I posted.
I don't think it's appropriate to put this support into the IRQ core.
The main issue is that all the handlers for any shared wired-or
interrupt line have to be registered before the IRQ is enabled, to avoid
some initially active interrupt continually firing before the IRQ is
enabled. Co-ordinating this when the wired-or line is on a board outside
a device driver rather than internal to a chip and one device driver is
a bit more than the IRQ core should probably be doing, hence I imagine
why it doesn't support it.
Co-ordinating this setup where all the sources of the wired-or are in
one chip seems to belong to the chip driver, which is where my patch did
this.
I guess I could modify regmaps_irq_thread() so that instead of:
for (i = 0; i < d->nchips; i++)
handle_nested_irq(irq_find_mapping(d->irqdom, i));
... it short-circuited and instead did something like:
for (i = 0; i < d->nchips; i++)
regmap_irq_thread(irq_find_mapping(d->irqdom, i),
d->datas[i]);
but it seems a little hokey to short-circuit the IRQ core; it would
prevent execution of any statistics gathering or stuck interrupt
handling that handle_nested_irq() might do for example.
Now, if we made each child regmap_irq not be its own IRQ domain or
irq_chip, but simply had one top-level domain/chip that aggregated them,
that argument would be moot. However, that top-level domain/chip would
become rather complex and just end up doing a bunch of demultiplexing
code that's not needed if we do it like in my patch...
next prev parent reply other threads:[~2012-07-31 23:18 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 19:01 [PATCH 1/3] regmap: fix some error messages to take account of irq_reg_stride Stephen Warren
2012-07-27 19:01 ` [PATCH 2/3] regmap: implement irq chip suspend/resume operations Stephen Warren
2012-07-29 21:04 ` Mark Brown
2012-07-30 17:10 ` Stephen Warren
2012-07-30 17:38 ` Mark Brown
2012-07-31 19:25 ` Stephen Warren
2012-08-01 13:56 ` Mark Brown
2012-07-27 19:01 ` [PATCH 3/3] regmap: enhance regmap-irq to handle 1 IRQ feeding n chips Stephen Warren
2012-07-29 20:36 ` Mark Brown
2012-07-30 17:00 ` Stephen Warren
2012-07-30 17:25 ` Mark Brown
2012-07-31 23:18 ` Stephen Warren [this message]
2012-08-01 11:41 ` Mark Brown
2012-08-01 13:56 ` [PATCH 1/3] regmap: fix some error messages to take account of irq_reg_stride 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=501867CC.50909@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lrg@ti.com \
--cc=sameo@linux.intel.com \
--cc=swarren@nvidia.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).