All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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 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.