linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 14/29] ARM: orion: switch to a per-platform handle_irq() function
Date: Sat, 19 Apr 2014 09:27:08 +0200	[thread overview]
Message-ID: <20140419092708.78eb9274@skate> (raw)
In-Reply-To: <534BBB30.5090602@gmail.com>

Dear Sebastian Hesselbarth,

On Mon, 14 Apr 2014 12:40:48 +0200, Sebastian Hesselbarth wrote:

> > +static asmlinkage void
> > +__exception_irq_entry dove_legacy_handle_irq(struct pt_regs *regs)
> > +{
> > +	u32 stat;
> > +
> > +	stat = readl_relaxed(dove_irq_base + IRQ_CAUSE_LOW_OFF);
> > +	stat &= readl_relaxed(dove_irq_base + IRQ_MASK_LOW_OFF);
> > +	if (stat) {
> > +		unsigned int hwirq = __fls(stat);
> > +		handle_IRQ(hwirq, regs);
> > +		return;
> > +	}
> 
> I remember we talked about it already, but IMHO copying the multi-irq
> handler to mach-{kirkwood,dove} isn't necessary. The only situation we
> need this is when you compile _one_ mach-{kirkwood,dove,orion5x} with
> both DT and non-DT.
> 
> So, I think it is fine to just add
> 
> #if !defined(CONFIG_MACH_ORION5X)
> > +	stat = readl_relaxed(dove_irq_base + IRQ_CAUSE_HIGH_OFF);
> > +	stat &= readl_relaxed(dove_irq_base + IRQ_MASK_HIGH_OFF);
> > +	if (stat) {
> > +		unsigned int hwirq = 32 + __fls(stat);
> > +		handle_IRQ(hwirq, regs);
> > +		return;
> > +	}
> #endif
> 
> in the original handler?

Nope, it doesn't work, because mach-orion5x doesn't define
IRQ_VIRT_BASE, IRQ_CAUSE_LOW_OFF and IRQ_MASK_LOW_OFF, so the common
handler does not build, even after compiling-out the part you mention
here.

Of course, Orion5x code can be changed to define those values, but I
found it was not worth the effort, and Arnd Bergmann during an IRC
discussion, also suggested to move the handle_irq() function to each
individual mach-<foo> directory. And it actually makes sense, because
it's only the same between Kirkwood and Dove: Orion5x and mv78xx0 need
different implementations.

Also, this approach goes towards the goal of reducing plat-orion/ code.
Having the code closer to each SoC is going to make it easier to
progressively get rid of it I believe.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2014-04-19  7:27 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-13 14:39 [PATCH 00/29] ARM: orion5x: big step towards DT conversion Thomas Petazzoni
2014-04-13 14:39 ` [PATCH 01/29] ARM: orion5x: fix target ID for crypto SRAM window Thomas Petazzoni
2014-04-14  8:59   ` Sebastian Hesselbarth
2014-04-17  4:55   ` Jason Cooper
2014-04-13 14:39 ` [PATCH 02/29] pinctrl: mvebu: new driver for Orion platforms Thomas Petazzoni
2014-04-14  9:15   ` Sebastian Hesselbarth
2014-04-19 17:28     ` Thomas Petazzoni
2014-04-20 10:04       ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 03/29] clk: mvebu: add Orion5x clock driver Thomas Petazzoni
2014-04-14  9:27   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 04/29] memory: mvebu-devbus: fix the conversion of the bus width Thomas Petazzoni
2014-04-14  9:30   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 05/29] memory: mvebu-devbus: use ARMADA_ prefix in defines Thomas Petazzoni
2014-04-14  9:33   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 06/29] memory: mvebu-devbus: split functions Thomas Petazzoni
2014-04-14  9:36   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 07/29] memory: mvebu-devbus: add Orion5x support Thomas Petazzoni
2014-04-14  9:41   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 08/29] ARM: orion5x: move interrupt controller node into ocp Thomas Petazzoni
2014-04-14  9:42   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 09/29] ARM: orion5x: switch to preprocessor includes in DT Thomas Petazzoni
2014-04-14  9:43   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 10/29] ARM: orion5x: use existing dt-bindings include for Device Tree files Thomas Petazzoni
2014-04-14  9:43   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 11/29] ARM: orion5x: convert DT to use the mvebu-mbus driver Thomas Petazzoni
2014-04-14 10:33   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 12/29] ARM: orion5x: add interrupt for Ethernet in Device Tree Thomas Petazzoni
2014-04-14 10:33   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 13/29] ARM: orion5x: switch to use the clock driver for DT platforms Thomas Petazzoni
2014-04-14 10:35   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 14/29] ARM: orion: switch to a per-platform handle_irq() function Thomas Petazzoni
2014-04-14 10:40   ` Sebastian Hesselbarth
2014-04-19  7:27     ` Thomas Petazzoni [this message]
2014-04-19  9:09       ` Sebastian Hesselbarth
2014-04-19 12:04         ` Thomas Petazzoni
2014-04-19 16:16           ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 15/29] ARM: orion5x: switch to DT interrupts and timer Thomas Petazzoni
2014-04-14 10:43   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 16/29] ARM: orion5x: enable pinctrl driver at SoC level Thomas Petazzoni
2014-04-14 10:44   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 17/29] ARM: orion5x: update I2C description " Thomas Petazzoni
2014-04-14 10:45   ` Sebastian Hesselbarth
2014-04-19  7:38     ` Thomas Petazzoni
2014-04-19  9:10       ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 18/29] ARM: orion5x: add Device Bus " Thomas Petazzoni
2014-04-14 10:47   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 19/29] ARM: orion5x: add standard pinctrl configs for sata0 and sata1 Thomas Petazzoni
2014-04-14 10:48   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 20/29] ARM: orion5x: convert edmini_v2 to DT pinctrl Thomas Petazzoni
2014-04-13 15:26   ` Andrew Lunn
2014-04-13 15:41     ` Thomas Petazzoni
2014-04-14 10:51   ` Sebastian Hesselbarth
2014-04-14 11:23     ` Thomas Petazzoni
2014-04-14 11:27       ` Sebastian Hesselbarth
2014-04-14 12:06         ` Andrew Lunn
2014-04-14 12:24           ` Ezequiel Garcia
2014-04-14 12:28           ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 21/29] ARM: orion5x: use DT to describe I2C devices on edmini_v2 Thomas Petazzoni
2014-04-13 15:28   ` Andrew Lunn
2014-04-13 15:43     ` Thomas Petazzoni
2014-04-13 15:53       ` Andrew Lunn
2014-04-14 10:53   ` Sebastian Hesselbarth
2014-04-13 14:39 ` [PATCH 22/29] ARM: orion5x: use DT to describe EHCI " Thomas Petazzoni
2014-04-14 10:57   ` Sebastian Hesselbarth
2014-04-13 14:40 ` [PATCH 23/29] ARM: orion5x: use DT to describe NOR " Thomas Petazzoni
2014-04-13 15:31   ` Andrew Lunn
2014-04-13 15:45     ` Thomas Petazzoni
2014-04-14  2:10       ` Chris Moore
2014-04-14  2:19         ` Chris Moore
2014-04-14 18:44       ` Andrew Lunn
2014-04-14 11:14   ` Sebastian Hesselbarth
2014-04-14 11:24     ` Thomas Petazzoni
2014-04-14 11:28       ` Sebastian Hesselbarth
2014-04-13 14:40 ` [PATCH 24/29] ARM: orion5x: keep TODO list in edmini_v2 DT Thomas Petazzoni
2014-04-14 11:17   ` Sebastian Hesselbarth
2014-04-15  2:59     ` Chris Moore
2014-04-13 14:40 ` [PATCH 25/29] ARM: orion5x: remove unneeded code for edmini_v2 Thomas Petazzoni
2014-04-14 11:18   ` Sebastian Hesselbarth
2014-04-13 14:40 ` [PATCH 26/29] ARM: orion5x: convert RD-88F5182 to Device Tree Thomas Petazzoni
2014-04-13 15:47   ` Andrew Lunn
2014-04-13 15:56     ` Thomas Petazzoni
2014-04-13 15:59       ` Andrew Lunn
2014-04-13 16:53         ` Thomas Petazzoni
2014-04-13 16:59           ` Sebastian Hesselbarth
2014-04-13 17:50       ` Arnd Bergmann
2014-04-14  8:01         ` Andrew Lunn
2014-04-14  9:08           ` Arnd Bergmann
2014-04-14 11:26   ` Sebastian Hesselbarth
2014-04-19  7:46     ` Thomas Petazzoni
2014-04-19  9:18       ` Sebastian Hesselbarth
2014-04-13 14:40 ` [PATCH 27/29] ARM: orion5x: convert d2net " Thomas Petazzoni
2014-04-13 14:40 ` [PATCH 28/29] ARM: orion: remove no longer needed DT IRQ code Thomas Petazzoni
2014-04-13 14:40 ` [PATCH 29/29] ARM: orion: remove no longer needed gpio DT code Thomas Petazzoni

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=20140419092708.78eb9274@skate \
    --to=thomas.petazzoni@free-electrons.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).