All of lore.kernel.org
 help / color / mirror / Atom feed
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 07/16] ARM: GIC: Add global gic_handle_irq_offset() function
Date: Thu, 29 Sep 2011 09:53:26 +0100	[thread overview]
Message-ID: <4E843206.4040500@arm.com> (raw)
In-Reply-To: <4E834248.3010908@gmail.com>

On 28/09/11 16:50, Rob Herring wrote:
> On 09/26/2011 06:02 AM, Marc Zyngier wrote:
>> Similar to gic_handle_irq(), gic_handle_irq_offset() is provided
>> for those platform who insist on having their GIC base interrupt
>> at something different from zero. At the moment, Exynos4 is the
>> only one...
>>
>> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
>> ---
>>  arch/arm/common/gic.c               |   24 ++++++++++++++++++++++++
>>  arch/arm/include/asm/hardware/gic.h |    1 +
>>  2 files changed, 25 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
>> index 5a22896..ef803d2 100644
>> --- a/arch/arm/common/gic.c
>> +++ b/arch/arm/common/gic.c
>> @@ -232,6 +232,30 @@ asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
>>  	} while (1);
>>  }
>>  
>> +asmlinkage void __exception_irq_entry gic_handle_irq_offset(struct pt_regs *regs)
>> +{
>> +	u32 irqstat, irqnr;
>> +	u32 offset = gic_data[0].irq_offset;
>> +
>> +	do {
>> +		irqstat = readl_relaxed(gic_cpu_base_addr + GIC_CPU_INTACK);
>> +		irqnr = irqstat & ~0x1c00;
>> +
>> +		if (likely(irqnr > 15 && irqnr < 1021)) {
>> +			handle_IRQ(irqnr + offset, regs);
> 
> Can't this be combined with gic_handle_irq. irq_offset will be 0 in that
> case. Really, irq_domain should be used here.

I completely agree on the irq_domain thing. The reason I introduced two
functions is to keep things as similar as possible to the old
implementation, and also to save a memory reference + addition on the
hot path of all the other platforms.

If we all agree that keeping that piece of code as generic as possible
is the way forward, then I'll happily drop that patch and let Exynos4
use the same handler.

Cheers,

	M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2011-09-29  8:53 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-26 11:02 [PATCH v2 00/16] Switch GIC users (and omap2plus) to CONFIG_MULTI_IRQ_HANDLER Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 01/16] ARM: Make global handler and CONFIG_MULTI_IRQ_HANDLER mutually exclusive Marc Zyngier
2011-09-28  1:00   ` Tony Lindgren
2011-09-26 11:02 ` [PATCH v2 02/16] ARM: smp: Add an IPI handler callable from C code Marc Zyngier
2011-09-28  1:01   ` Tony Lindgren
2011-09-26 11:02 ` [PATCH v2 03/16] ARM: GIC: Add global gic_handle_irq() function Marc Zyngier
2011-09-28  1:01   ` Tony Lindgren
2011-09-26 11:02 ` [PATCH v2 04/16] ARM: RealView: convert to CONFIG_MULTI_IRQ_HANDLER Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 05/16] ARM: VExpress: " Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 06/16] ARM: msm: convert SMP platforms " Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 07/16] ARM: GIC: Add global gic_handle_irq_offset() function Marc Zyngier
2011-09-28 15:50   ` Rob Herring
2011-09-29  8:53     ` Marc Zyngier [this message]
2011-09-26 11:02 ` [PATCH v2 08/16] ARM: exynos4: convert to CONFIG_MULTI_IRQ_HANDLER Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 09/16] ARM: tegra2: " Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 10/16] ARM: ux500: " Marc Zyngier
2011-09-27 11:47   ` Linus Walleij
2011-09-27 12:33     ` Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 11/16] ARM: shmobile: convert smp platforms to gic_handle_irq() Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 12/16] ARM: cns3xxx: convert to CONFIG_MULTI_IRQ_HANDLER Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 13/16] ARM: zynq: " Marc Zyngier
2011-09-26 11:02 ` [PATCH v2 14/16] ARM: omap2/3: Add global omap2/3_intc_handle_irq() functions Marc Zyngier
2011-09-28  1:02   ` Tony Lindgren
2011-09-26 11:02 ` [PATCH v2 15/16] ARM: omap2plus: convert to CONFIG_MULTI_IRQ_HANDLER Marc Zyngier
2011-09-28  1:04   ` Tony Lindgren
2011-09-26 11:02 ` [PATCH v2 16/16] ARM: GIC: Make MULTI_IRQ_HANDLER mandatory Marc Zyngier
2011-09-27  3:43   ` Shawn Guo
2011-09-27  8:32     ` Marc Zyngier
2011-09-27 10:19       ` Shawn Guo
2011-09-28  1:04   ` Tony Lindgren
2011-09-26 20:20 ` [PATCH v2 00/16] Switch GIC users (and omap2plus) to CONFIG_MULTI_IRQ_HANDLER David Brown
2011-09-27  0:15   ` David Brown
2011-09-27  8:58     ` Marc Zyngier
2011-09-27 10:20 ` Shawn Guo
2011-09-27 10:22   ` Marc Zyngier
2011-09-27 23:53 ` Tony Lindgren
2011-09-28  0:53   ` Tony Lindgren

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=4E843206.4040500@arm.com \
    --to=marc.zyngier@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.