Re: [RFC trollpatch 1/1] genirq: Remove the fits all and nothing__do_IRQ() code

From: Greg Ungerer
Date: Thu Sep 09 2010 - 19:19:26 EST



Hi Kyle,

Kyle McMartin wrote:
On Thu, Sep 09, 2010 at 05:21:35PM +1000, Greg Ungerer wrote:
The m68knommu arch should be easy to fix up. Here is a first pass
patch. Tested and working on 1 board so far. I need to check all
the processor types, and test a few more to be sure :-)


Dunno if you noticed, Greg, but you've already had a removal patch
submitted some time ago...

I had forgotten about that patch... But if you follow the email
trail I had to drop it soon after, it caused user space to lock
up. I let Steven know (in that same thread) but he never came
back with any fixes/updates.

(That patch also added support for edge triggered GPIO interrupts,
and that may well have been the source of the problems).

Thanks
Greg


Date: Wed, 16 Dec 2009 19:15:39 -0800 From: Steven King <sfking@xxxxxxxxx> To: Greg Ungerer <gerg@xxxxxxxxxxxx> Subject: [PATCH] m68knommu: get rid of __do_IRQ and add support for
using gpio irqs.

(noticed this while searching for __do_IRQ related stuff in my email
last night.)

regards, Kyle

Regards
Greg


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

m68knommu: stop using __do_IRQ

The use of __do_IRQ is deprecated, so lets stop using it.
Generally the interrupts on the supported processors here are
level triggered, so this is strait forward to switch over to
using the standard handle_level_irq flow handler.

Signed-off-by: Greg Ungerer <gerg@xxxxxxxxxxx>
---
arch/m68knommu/Kconfig | 4 ++++
arch/m68knommu/platform/5272/intc.c | 1 +
arch/m68knommu/platform/68328/ints.c | 1 +
arch/m68knommu/platform/68360/ints.c | 1 +
arch/m68knommu/platform/coldfire/intc-2.c | 1 +
arch/m68knommu/platform/coldfire/intc-simr.c | 1 +
arch/m68knommu/platform/coldfire/intc.c | 1 +
7 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 2609c39..fd28178 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -59,6 +59,10 @@ config GENERIC_HARDIRQS
bool
default y
+config GENERIC_HARDIRQS_NO__DO_IRQ
+ bool
+ default y
+
config GENERIC_CALIBRATE_DELAY
bool
default y
diff --git a/arch/m68knommu/platform/5272/intc.c b/arch/m68knommu/platform/5272/intc.c
index 7081e0a..e9da6f1 100644
--- a/arch/m68knommu/platform/5272/intc.c
+++ b/arch/m68knommu/platform/5272/intc.c
@@ -133,6 +133,7 @@ void __init init_IRQ(void)
irq_desc[irq].depth = 1;
irq_desc[irq].chip = &intc_irq_chip;
intc_irq_set_type(irq, 0);
+ set_irq_handler(irq, handle_level_irq);
}
}
diff --git a/arch/m68knommu/platform/68328/ints.c b/arch/m68knommu/platform/68328/ints.c
index b91ee85..90516ee 100644
--- a/arch/m68knommu/platform/68328/ints.c
+++ b/arch/m68knommu/platform/68328/ints.c
@@ -183,6 +183,7 @@ void __init init_IRQ(void)
irq_desc[i].action = NULL;
irq_desc[i].depth = 1;
irq_desc[i].chip = &intc_irq_chip;
+ set_irq_handler(irq, handle_level_irq);
}
}
diff --git a/arch/m68knommu/platform/68360/ints.c b/arch/m68knommu/platform/68360/ints.c
index 6f22970..cdf691e 100644
--- a/arch/m68knommu/platform/68360/ints.c
+++ b/arch/m68knommu/platform/68360/ints.c
@@ -136,6 +136,7 @@ void init_IRQ(void)
irq_desc[i].action = NULL;
irq_desc[i].depth = 1;
irq_desc[i].chip = &intc_irq_chip;
+ set_irq_handler(irq, handle_level_irq);
}
}
diff --git a/arch/m68knommu/platform/coldfire/intc-2.c b/arch/m68knommu/platform/coldfire/intc-2.c
index 5598c8b..6410f7e 100644
--- a/arch/m68knommu/platform/coldfire/intc-2.c
+++ b/arch/m68knommu/platform/coldfire/intc-2.c
@@ -88,6 +88,7 @@ void __init init_IRQ(void)
irq_desc[irq].action = NULL;
irq_desc[irq].depth = 1;
irq_desc[irq].chip = &intc_irq_chip;
+ set_irq_handler(irq, handle_level_irq);
}
}
diff --git a/arch/m68knommu/platform/coldfire/intc-simr.c b/arch/m68knommu/platform/coldfire/intc-simr.c
index 1b01e79..7f4abb3 100644
--- a/arch/m68knommu/platform/coldfire/intc-simr.c
+++ b/arch/m68knommu/platform/coldfire/intc-simr.c
@@ -73,6 +73,7 @@ void __init init_IRQ(void)
irq_desc[irq].depth = 1;
irq_desc[irq].chip = &intc_irq_chip;
intc_irq_set_type(irq, 0);
+ set_irq_handler(irq, handle_level_irq);
}
}
diff --git a/arch/m68knommu/platform/coldfire/intc.c b/arch/m68knommu/platform/coldfire/intc.c
index a4560c8..40b9e8d 100644
--- a/arch/m68knommu/platform/coldfire/intc.c
+++ b/arch/m68knommu/platform/coldfire/intc.c
@@ -148,6 +148,7 @@ void __init init_IRQ(void)
irq_desc[irq].depth = 1;
irq_desc[irq].chip = &intc_irq_chip;
intc_irq_set_type(irq, 0);
+ set_irq_handler(irq, handle_level_irq);
}
}




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