aboutsummaryrefslogtreecommitdiff
path: root/arch/m68k
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2011-08-18 14:47:16 +0200
committerGeert Uytterhoeven <geert@linux-m68k.org>2011-11-08 22:35:52 +0100
commita03010ed9b399fdbc28ac8836e0a6d4b15403f9f (patch)
treeea82d48efa6e8af9d8f759c77e004da29dd5c558 /arch/m68k
parentdda7535912255015ecf7264c1d6691a09f8ba487 (diff)
m68k/q40: Convert Q40/Q60 to genirq
q40_irq_handler() must be kept to translate ISA IRQs to the range 1-15. q40_probe_irq_o{ff,n}() become unused. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Richard Zidlicky <rz@linux-m68k.org>
Diffstat (limited to 'arch/m68k')
-rw-r--r--arch/m68k/Kconfig1
-rw-r--r--arch/m68k/include/asm/q40ints.h2
-rw-r--r--arch/m68k/q40/q40ints.c8
3 files changed, 9 insertions, 2 deletions
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 290f9c838b3..06198ced224 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -87,7 +87,6 @@ config MMU_SUN3
config USE_GENERIC_HARDIRQS
bool "Use genirq"
depends on MMU
- depends on !Q40
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_SHOW
diff --git a/arch/m68k/include/asm/q40ints.h b/arch/m68k/include/asm/q40ints.h
index 3d970afb708..01cdbb4da46 100644
--- a/arch/m68k/include/asm/q40ints.h
+++ b/arch/m68k/include/asm/q40ints.h
@@ -25,5 +25,7 @@
#define Q40_IRQ14_MASK (1<<6)
#define Q40_IRQ15_MASK (1<<7)
+#ifndef CONFIG_GENERIC_HARDIRQS
extern unsigned long q40_probe_irq_on (void);
extern int q40_probe_irq_off (unsigned long irqs);
+#endif
diff --git a/arch/m68k/q40/q40ints.c b/arch/m68k/q40/q40ints.c
index afe600c0365..f1e5288f043 100644
--- a/arch/m68k/q40/q40ints.c
+++ b/arch/m68k/q40/q40ints.c
@@ -15,10 +15,14 @@
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
+#ifdef CONFIG_GENERIC_HARDIRQS
+#include <linux/irq.h>
+#else
+#include <asm/irq.h>
+#endif
#include <asm/ptrace.h>
#include <asm/system.h>
-#include <asm/irq.h>
#include <asm/traps.h>
#include <asm/q40_master.h>
@@ -326,6 +330,7 @@ void q40_irq_disable(struct irq_data *data)
}
}
+#ifndef CONFIG_GENERIC_HARDIRQS
unsigned long q40_probe_irq_on(void)
{
printk("irq probing not working - reconfigure the driver to avoid this\n");
@@ -335,3 +340,4 @@ int q40_probe_irq_off(unsigned long irqs)
{
return -1;
}
+#endif