linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: b-cousson@ti.com (Cousson, Benoit)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/5] ARM: gic: add OF based initialization
Date: Mon, 19 Sep 2011 15:08:02 +0200	[thread overview]
Message-ID: <4E773EB2.60504@ti.com> (raw)
In-Reply-To: <CA+wbFddVw5+CDMzNXE9Q4-v4kByQmC6xp-rK5e81ChbYFGVe=A@mail.gmail.com>

On 9/19/2011 2:07 PM, Dave Martin wrote:
> On Sun, Sep 18, 2011 at 7:21 AM, Grant Likely<grant.likely@secretlab.ca>  wrote:
>> On Fri, Sep 16, 2011 at 05:09:39PM +0100, Dave Martin wrote:
>>> For now, we express the mapping by putting an interrupt-map in the
>>> core-tile DT, but this feels inelegant as well as wasteful -- expressing
>>> "+ 32" using a table which is about 1K in size and duplicates that
>>> information 43 times.
>>>
>>> Using a dedicated irq domain or a fake interrupt controller node to
>>> encapsulate the motherboard interrupts feels like a cleaner approach,
>>> but for now I'm not clear on the best way to do it.
>>
>> An irq nexus node would indeed be something to investigate for your
>> particular case.  Look for examples of interrupt-map.  It is most
>> often used for handling IRQ swizzling on PCI busses.
>
> That's what I currently have -- this is logically correct, and it
> works; it just feels like a sledgehammer for cracking this particular
> nut, because we don't really have 43 independent interrupt mappings
> and types.  We have one offset and one type which is applied to all
> the interrupts, and this situation is expected to be the same for all
> variations of this board, except that offset may change.  I suspect
> this situation applies to many platforms -- the number of interrupts
> may in general be much larger than the number of independent mappings.
>
> Another way of looking at the problem is that it's difficult to come
> up with a one-size-fits-all description of interrupt mappings which is
> also efficient.  Requiring a single set of mapping semantics requires
> the mappings to be both rather overspecified for most cases, and
> flattened into a large, structureless table which may become pretty
> large and unwieldy.  If there were 100+ interrupts instead of 43, we'd
> really have to be generating the device tree using a script in order
> for it to be maintainable (which is not necessarily a problem, but can
> be a warning sign)

Yep, this is exactly the issue I was facing when I tried to map the 128 
interrupts lines of an OMAP4 to the GIC. Adding 128 entries to an 
interrupt map just to handle a simple linear translation with a constant 
value of 32 is clearly overkill.

> An alternative approach is to introduce a special interrupt controller
> node which serves as the interrupt-parent for the child domain and
> maps the interrupts with flexible semantics defined by the node's
> bindings; or different kinds of interrupt-map/interrupt-map-mask
> properties could be defined.  Bindings could be added as needed to
> support different cases -- though really we should only expect to have
> a small number at most.  When the interrupt mapping is significantly
> complex, using interrupt-map will probably be the best approach
> anyway.

Maybe we can just extend or add a new type of interrupt nexus to handle 
simple translation. The actual one was done for complex PCI mapping but 
with a small number of lines to handle. In our case, the mapping is 
simple, but the number of lines is huge.

Regards,
Benoit

  reply	other threads:[~2011-09-19 13:08 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-14 16:31 [PATCH 0/5] GIC OF bindings Rob Herring
2011-09-14 16:31 ` [PATCH 1/5] irq: add declaration of irq_domain_simple_ops to irqdomain.h Rob Herring
2011-09-14 16:31 ` [PATCH 2/5] irq: fix existing domain check in irq_domain_add Rob Herring
2011-09-14 16:44   ` Thomas Gleixner
2011-09-17 23:24     ` Grant Likely
2011-09-14 16:31 ` [PATCH 3/5] of/irq: introduce of_irq_init Rob Herring
2011-09-15 10:41   ` Arnd Bergmann
2011-09-17 23:53   ` Grant Likely
2011-09-18  1:37     ` Rob Herring
2011-09-18  6:02       ` Grant Likely
2011-09-14 16:31 ` [PATCH 4/5] ARM: gic: allow irq_start to be 0 Rob Herring
2011-09-18  6:24   ` Grant Likely
2011-09-18 12:03   ` Russell King - ARM Linux
2011-09-14 16:31 ` [PATCH 5/5] ARM: gic: add OF based initialization Rob Herring
2011-09-14 17:46   ` Marc Zyngier
2011-09-14 17:57     ` Rob Herring
2011-09-14 18:34       ` Marc Zyngier
2011-09-14 18:51         ` Rob Herring
2011-09-18  0:13           ` Grant Likely
2011-09-15  7:55   ` Thomas Abraham
2011-09-15 10:07     ` Cousson, Benoit
2011-09-15 10:29       ` Russell King - ARM Linux
2011-09-15 12:28         ` Cousson, Benoit
2011-09-15 12:51           ` Russell King - ARM Linux
2011-09-15 13:03             ` Cousson, Benoit
2011-09-15 13:11       ` Rob Herring
2011-09-15 13:52         ` Cousson, Benoit
2011-09-15 16:43           ` Rob Herring
2011-09-18 21:23             ` Rob Herring
2011-09-19 12:09               ` Cousson, Benoit
2011-09-19 13:48                 ` Rob Herring
2011-09-19 14:32                   ` Cousson, Benoit
2011-09-19 21:14                   ` Grant Likely
2011-09-19 21:53                     ` Rob Herring
2011-09-20  0:22                       ` Grant Likely
2011-09-20  4:18                       ` Grant Likely
2011-09-20 15:23                       ` Cousson, Benoit
2011-09-19 16:00                 ` Russell King - ARM Linux
2011-09-19 20:49               ` Grant Likely
2011-09-19  9:47             ` Cousson, Benoit
2011-09-19 13:33               ` Russell King - ARM Linux
2011-09-19 17:44                 ` Grant Likely
2011-09-16 16:09       ` Dave Martin
2011-09-18  6:21         ` Grant Likely
2011-09-19 12:07           ` Dave Martin
2011-09-19 13:08             ` Cousson, Benoit [this message]
2011-09-18  6:15       ` Grant Likely
2011-09-19  8:47         ` Cousson, Benoit
2011-09-15 12:54     ` Rob Herring
2011-09-16  9:34       ` Thomas Abraham
2011-09-18  6:10         ` Grant Likely
2011-09-19 12:59           ` Thomas Abraham
2011-09-15 10:43   ` Arnd Bergmann
2011-09-18  6:30   ` Grant Likely
2011-09-15  8:50 ` [PATCH 0/5] GIC OF bindings Jamie Iles
2011-09-15 13:53 ` Shawn Guo

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=4E773EB2.60504@ti.com \
    --to=b-cousson@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).