Re: [PATCH] m68knommu: get rid of __do_IRQ and add support for usinggpio irqs.

From: Greg Ungerer
Date: Sun Jan 10 2010 - 22:49:06 EST



Hi Steven,

Steven King wrote:
Since we now have generic irq support for m68knommu and as __do_IRQ is
supposed to go away real soon now, I added config GENERIC_HARDIRQS_NO__DO_IRQ
to m68knommu/Kconfig. Unfortunately, that produced an unbootable kernel --
looking at the code for generic_handle_irq in linux/irq.h, the NO__DO_IRQ
version unconditionally calls desc->handle_irq, which suggests that an irq's
handle_irq isnt getting initialized in the early boot and indeed, adding an
initialization of handle_irq in init_IRQ produced a working system.

I'm not entirely satisfied with that solution as it ignores why we are getting
an irq when no handler has been setup for it, but in any case, using
set_irq_chip_and_handler in init_IRQ to initialize all the handlers is the
right thing to do (or atleast, its what all the other arches do) (and I didnt
feel like digging out the BDM pod to figure out where the mystery irq is
coming from).

Then the real reason I was digging into the irq code is to add support for
using gpio irqs on the gpios of the parts that support that. The following
patch is against

git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu.git for-next

only the intc-2 gpio irqs have been tested on real hardware.

------------------------------

Get rid of __do_IRQ; use set_irq_chip_and_handler to initialize irqs. Add
support for using gpio irqs and setting the edge on external irqs generally.

Signed-off-by: Steven King <sfking@xxxxxxxxx>

Applied to the for-linus and for-next branches of the m68knommu git
tree.

Thanks
Greg



--

arch/m68k/include/asm/m520xsim.h | 3 +
arch/m68k/include/asm/m523xsim.h | 3 +
arch/m68k/include/asm/m5249sim.h | 4 +-
arch/m68k/include/asm/m527xsim.h | 3 +
arch/m68knommu/Kconfig | 4 ++
arch/m68knommu/platform/5272/intc.c | 39 +++++++++++---
arch/m68knommu/platform/68328/ints.c | 8 +--
arch/m68knommu/platform/68360/ints.c | 8 +--
arch/m68knommu/platform/coldfire/intc-2.c | 76 ++++++++++++++++++++++++--
arch/m68knommu/platform/coldfire/intc-simr.c | 68 ++++++++++++++++++++++--
arch/m68knommu/platform/coldfire/intc.c | 59 +++++++++++++++++++--
11 files changed, 239 insertions(+), 36 deletions(-)


--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@xxxxxxxxxxxx
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/