aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/amiga/amiints.c3
-rw-r--r--arch/m68k/amiga/cia.c6
-rw-r--r--arch/m68k/apollo/dn_ints.c3
-rw-r--r--arch/m68k/atari/ataints.c3
-rw-r--r--arch/m68k/include/asm/irq.h2
-rw-r--r--arch/m68k/mac/macints.c2
-rw-r--r--arch/m68k/q40/q40ints.c3
-rw-r--r--arch/m68k/sun3/sun3ints.c3
8 files changed, 17 insertions, 8 deletions
diff --git a/arch/m68k/amiga/amiints.c b/arch/m68k/amiga/amiints.c
index 09a695babfe9..8af5ea3eea67 100644
--- a/arch/m68k/amiga/amiints.c
+++ b/arch/m68k/amiga/amiints.c
@@ -80,7 +80,8 @@ void __init amiga_init_IRQ(void)
80 if (request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL)) 80 if (request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL))
81 pr_err("Couldn't register int%d\n", 5); 81 pr_err("Couldn't register int%d\n", 5);
82 82
83 m68k_setup_irq_chip(&amiga_irq_chip, IRQ_USER, AMI_STD_IRQS); 83 m68k_setup_irq_controller(&amiga_irq_chip, handle_simple_irq, IRQ_USER,
84 AMI_STD_IRQS);
84 85
85 /* turn off PCMCIA interrupts */ 86 /* turn off PCMCIA interrupts */
86 if (AMIGAHW_PRESENT(PCMCIA)) 87 if (AMIGAHW_PRESENT(PCMCIA))
diff --git a/arch/m68k/amiga/cia.c b/arch/m68k/amiga/cia.c
index b04b453718d9..84663ae824ef 100644
--- a/arch/m68k/amiga/cia.c
+++ b/arch/m68k/amiga/cia.c
@@ -168,14 +168,16 @@ static struct irq_chip auto_irq_chip = {
168 168
169void __init cia_init_IRQ(struct ciabase *base) 169void __init cia_init_IRQ(struct ciabase *base)
170{ 170{
171 m68k_setup_irq_chip(&cia_irq_chip, base->cia_irq, CIA_IRQS); 171 m68k_setup_irq_controller(&cia_irq_chip, handle_simple_irq,
172 base->cia_irq, CIA_IRQS);
172 173
173 /* clear any pending interrupt and turn off all interrupts */ 174 /* clear any pending interrupt and turn off all interrupts */
174 cia_set_irq(base, CIA_ICR_ALL); 175 cia_set_irq(base, CIA_ICR_ALL);
175 cia_able_irq(base, CIA_ICR_ALL); 176 cia_able_irq(base, CIA_ICR_ALL);
176 177
177 /* override auto int and install CIA handler */ 178 /* override auto int and install CIA handler */
178 m68k_setup_irq_chip(&auto_irq_chip, base->handler_irq, 1); 179 m68k_setup_irq_controller(&auto_irq_chip, handle_simple_irq,
180 base->handler_irq, 1);
179 m68k_irq_startup_irq(base->handler_irq); 181 m68k_irq_startup_irq(base->handler_irq);
180 if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED, 182 if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED,
181 base->name, base)) 183 base->name, base))
diff --git a/arch/m68k/apollo/dn_ints.c b/arch/m68k/apollo/dn_ints.c
index 2bdab498b6c1..bdc44282fdba 100644
--- a/arch/m68k/apollo/dn_ints.c
+++ b/arch/m68k/apollo/dn_ints.c
@@ -43,5 +43,6 @@ static struct irq_chip apollo_irq_chip = {
43void __init dn_init_IRQ(void) 43void __init dn_init_IRQ(void)
44{ 44{
45 m68k_setup_user_interrupt(VEC_USER + 96, 16, dn_process_int); 45 m68k_setup_user_interrupt(VEC_USER + 96, 16, dn_process_int);
46 m68k_setup_irq_chip(&apollo_irq_chip, IRQ_APOLLO, 16); 46 m68k_setup_irq_controller(&apollo_irq_chip, handle_simple_irq,
47 IRQ_APOLLO, 16);
47} 48}
diff --git a/arch/m68k/atari/ataints.c b/arch/m68k/atari/ataints.c
index 7f4e5a9b77c5..6149ff994641 100644
--- a/arch/m68k/atari/ataints.c
+++ b/arch/m68k/atari/ataints.c
@@ -374,7 +374,8 @@ static struct irq_chip atari_irq_chip = {
374void __init atari_init_IRQ(void) 374void __init atari_init_IRQ(void)
375{ 375{
376 m68k_setup_user_interrupt(VEC_USER, NUM_ATARI_SOURCES - IRQ_USER, NULL); 376 m68k_setup_user_interrupt(VEC_USER, NUM_ATARI_SOURCES - IRQ_USER, NULL);
377 m68k_setup_irq_chip(&atari_irq_chip, 1, NUM_ATARI_SOURCES - 1); 377 m68k_setup_irq_controller(&atari_irq_chip, handle_simple_irq, 1,
378 NUM_ATARI_SOURCES - 1);
378 379
379 /* Initialize the MFP(s) */ 380 /* Initialize the MFP(s) */
380 381
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
index 423f064955f2..d0b7efd1f1e2 100644
--- a/arch/m68k/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq.h
@@ -115,6 +115,8 @@ extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int, struct pt_re
115extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt, 115extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
116 void (*handler)(unsigned int, struct pt_regs *)); 116 void (*handler)(unsigned int, struct pt_regs *));
117extern void m68k_setup_irq_chip(struct irq_chip *, unsigned int, unsigned int); 117extern void m68k_setup_irq_chip(struct irq_chip *, unsigned int, unsigned int);
118#define m68k_setup_irq_controller(chip, dummy, irq, cnt) \
119 m68k_setup_irq_chip((chip), (irq), (cnt))
118 120
119asmlinkage void m68k_handle_int(unsigned int); 121asmlinkage void m68k_handle_int(unsigned int);
120asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *); 122asmlinkage void __m68k_handle_int(unsigned int, struct pt_regs *);
diff --git a/arch/m68k/mac/macints.c b/arch/m68k/mac/macints.c
index 3cee6d29cc5d..98497d288a9b 100644
--- a/arch/m68k/mac/macints.c
+++ b/arch/m68k/mac/macints.c
@@ -214,7 +214,7 @@ void __init mac_init_IRQ(void)
214#ifdef DEBUG_MACINTS 214#ifdef DEBUG_MACINTS
215 printk("mac_init_IRQ(): Setting things up...\n"); 215 printk("mac_init_IRQ(): Setting things up...\n");
216#endif 216#endif
217 m68k_setup_irq_chip(&mac_irq_chip, IRQ_USER, 217 m68k_setup_irq_controller(&mac_irq_chip, handle_simple_irq, IRQ_USER,
218 NUM_MAC_SOURCES - IRQ_USER); 218 NUM_MAC_SOURCES - IRQ_USER);
219 /* Make sure the SONIC interrupt is cleared or things get ugly */ 219 /* Make sure the SONIC interrupt is cleared or things get ugly */
220#ifdef SHUTUP_SONIC 220#ifdef SHUTUP_SONIC
diff --git a/arch/m68k/q40/q40ints.c b/arch/m68k/q40/q40ints.c
index cb245f972e1a..a8a5ce8b18fc 100644
--- a/arch/m68k/q40/q40ints.c
+++ b/arch/m68k/q40/q40ints.c
@@ -82,7 +82,8 @@ static int disabled;
82 82
83void __init q40_init_IRQ(void) 83void __init q40_init_IRQ(void)
84{ 84{
85 m68k_setup_irq_chip(&q40_irq_chip, 1, Q40_IRQ_MAX); 85 m68k_setup_irq_controller(&q40_irq_chip, handle_simple_irq, 1,
86 Q40_IRQ_MAX);
86 87
87 /* setup handler for ISA ints */ 88 /* setup handler for ISA ints */
88 m68k_setup_auto_interrupt(q40_irq_handler); 89 m68k_setup_auto_interrupt(q40_irq_handler);
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c
index 5d45e0065d2e..20461278e535 100644
--- a/arch/m68k/sun3/sun3ints.c
+++ b/arch/m68k/sun3/sun3ints.c
@@ -109,7 +109,8 @@ void __init sun3_init_IRQ(void)
109 *sun3_intreg = 1; 109 *sun3_intreg = 1;
110 110
111 m68k_setup_auto_interrupt(sun3_inthandle); 111 m68k_setup_auto_interrupt(sun3_inthandle);
112 m68k_setup_irq_chip(&sun3_irq_chip, IRQ_AUTO_1, 7); 112 m68k_setup_irq_controller(&sun3_irq_chip, handle_simple_irq,
113 IRQ_AUTO_1, 7);
113 m68k_setup_user_interrupt(VEC_USER, 128, NULL); 114 m68k_setup_user_interrupt(VEC_USER, 128, NULL);
114 115
115 if (request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL)) 116 if (request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL))