From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 3/5] irqchip: Move ARM GIC to drivers/irqchip
Date: Wed, 31 Oct 2012 15:54:25 +0000 [thread overview]
Message-ID: <20121031155425.GP21164@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <509146B8.2000305@gmail.com>
On Wed, Oct 31, 2012 at 10:41:44AM -0500, Rob Herring wrote:
> On 10/31/2012 10:09 AM, Russell King - ARM Linux wrote:
> > On Wed, Oct 31, 2012 at 09:58:35AM -0500, Rob Herring wrote:
> >> From: Rob Herring <rob.herring@calxeda.com>
> >>
> >> Now that we have drivers/irqchip, move GIC irqchip to drivers/irqchip. This
> >> is necessary to share the GIC with arm and arm64.
> >>
> >> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> >> Cc: Russell King <linux@arm.linux.org.uk>
> >> Cc: Thomas Gleixner <tglx@linutronix.de>
> >> ---
> >> arch/arm/common/Kconfig | 8 --------
> >> arch/arm/common/Makefile | 1 -
> >> drivers/irqchip/Kconfig | 8 ++++++++
> >> drivers/irqchip/Makefile | 1 +
> >> arch/arm/common/gic.c => drivers/irqchip/irq-gic.c | 0
> >> drivers/irqchip/irqchip.c | 10 ++++++++++
> >> drivers/irqchip/irqchip.h | 1 +
> >> 7 files changed, 20 insertions(+), 9 deletions(-)
> >> rename arch/arm/common/gic.c => drivers/irqchip/irq-gic.c (100%)
> >
> > What about its dependent arch/arm/include/asm/hardware/gic.h header,
> > which I believe after patch 1 becomes just a bunch of function calls,
> > and so no longer has any right to be in asm/hardware.
> >
> > Nothing should be moved out of arch/arm without its associated header
> > file also moving with it.
>
> What is left is only used within arch/arm and I expect we will get rid
> of the remaining users. So I didn't want to encourage any additional
> users by moving to include/linux.
>
> gic_secondary_init and gic_cascade_irq could be function ptrs.
gic_secondary_init() can be, but I don't see how why you think it would
be a good idea to turn gic_casade_irq() into a function pointer. That
makes zero sense to me what so ever. As I've already pointed out,
gic_cascade_irq() is only used by a minority of platforms where there
are two cascaded GICs. That being Realview, where you have a SMP tile
with its own GIC on top of the motherboard with a motherboard GIC.
Moreover, what gic_cascade_irq() is doing is can't really be turned
into something generic; it's setting up genirq for the chained GIC,
which requires GIC specific data.
You can't get around the fact that this function is attaching a
secondary GIC to an upstream IRQ. That's already as generic as it
can be.
And finally the exercise of turning that into a function pointer is
pure code obfuscation with zero benefit what so ever. The fact is
these platforms _definitely_ have a GIC present, and as the driver
needs to be built into the kernel for these platforms to function
there is no point what so ever in having a direct function call into
the GIC code.
To think otherwise... your off your rocker IMHO.
> gic_of_init can be removed once users are converted to call irqchip_init
> instead. That leaves gic_init which are all the non-DT converted GIC
> users and will take some time to convert. I am puzzled by tegra and zynq
> which should be DT only already.
Still, my point stands. After this change this header file has no
business being in asm/hardware. At all. It needs to move as a result
of this change.
next prev parent reply other threads:[~2012-10-31 15:54 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-31 14:58 [PATCH v2 0/5] Move GIC and VIC to drivers/irqchip Rob Herring
2012-10-31 14:58 ` [PATCH v2 1/5] ARM: gic: move register definitions into .c file Rob Herring
2012-10-31 15:01 ` Russell King - ARM Linux
2012-10-31 14:58 ` [PATCH v2 2/5] ARM: gic: remove direct use of gic_raise_softirq Rob Herring
2012-10-31 16:34 ` Tony Lindgren
2012-10-31 17:43 ` viresh kumar
2012-11-01 9:24 ` Santosh Shilimkar
2012-11-02 12:44 ` Srinidhi Kasagar
2012-11-19 11:50 ` Srinidhi Kasagar
2012-11-19 12:07 ` Thomas Petazzoni
2012-11-19 13:52 ` Rob Herring
2012-11-19 13:56 ` Linus Walleij
2012-11-19 14:03 ` Thomas Petazzoni
2012-10-31 14:58 ` [PATCH v2 3/5] irqchip: Move ARM GIC to drivers/irqchip Rob Herring
2012-10-31 15:09 ` Russell King - ARM Linux
2012-10-31 15:41 ` Rob Herring
2012-10-31 15:54 ` Russell King - ARM Linux [this message]
2012-10-31 17:13 ` Stephen Warren
2012-10-31 14:58 ` [PATCH v2 4/5] irqchip: Move ARM VIC " Rob Herring
2012-10-31 15:10 ` Russell King - ARM Linux
2012-10-31 14:58 ` [PATCH v2 5/5] ARM: highbank: use common irqchip_init Rob Herring
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=20121031155425.GP21164@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--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).