aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2011-09-11 05:54:50 -0400
committerGeert Uytterhoeven <geert@linux-m68k.org>2011-11-08 16:35:52 -0500
commitf30a6484f1bcb410d0af0c24f34b8e3d92682a05 (patch)
tree18c01955ef5260d5f4b0412961e68dd1c7a4938f
parentd890d73995257b4e10cdd7d55bad80e34a71ba22 (diff)
m68k/irq: Remove obsolete support for user vector interrupt fixups
It was used on Apollo only, before its conversion to genirq. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
-rw-r--r--arch/m68k/apollo/dn_ints.c2
-rw-r--r--arch/m68k/atari/ataints.c2
-rw-r--r--arch/m68k/bvme6000/config.c2
-rw-r--r--arch/m68k/include/asm/irq.h4
-rw-r--r--arch/m68k/kernel/entry_mm.S3
-rw-r--r--arch/m68k/kernel/ints.c11
-rw-r--r--arch/m68k/mvme147/config.c2
-rw-r--r--arch/m68k/mvme16x/config.c2
-rw-r--r--arch/m68k/sun3/sun3ints.c2
9 files changed, 10 insertions, 20 deletions
diff --git a/arch/m68k/apollo/dn_ints.c b/arch/m68k/apollo/dn_ints.c
index b7d0aa37d199..17be1e7e2df2 100644
--- a/arch/m68k/apollo/dn_ints.c
+++ b/arch/m68k/apollo/dn_ints.c
@@ -41,7 +41,7 @@ static struct irq_chip apollo_irq_chip = {
41 41
42void __init dn_init_IRQ(void) 42void __init dn_init_IRQ(void)
43{ 43{
44 m68k_setup_user_interrupt(VEC_USER + 96, 16, NULL); 44 m68k_setup_user_interrupt(VEC_USER + 96, 16);
45 m68k_setup_irq_controller(&apollo_irq_chip, handle_fasteoi_irq, 45 m68k_setup_irq_controller(&apollo_irq_chip, handle_fasteoi_irq,
46 IRQ_APOLLO, 16); 46 IRQ_APOLLO, 16);
47} 47}
diff --git a/arch/m68k/atari/ataints.c b/arch/m68k/atari/ataints.c
index af544557dd1d..6d196dadfdbc 100644
--- a/arch/m68k/atari/ataints.c
+++ b/arch/m68k/atari/ataints.c
@@ -137,7 +137,7 @@ static struct irq_chip atari_irq_chip = {
137 137
138void __init atari_init_IRQ(void) 138void __init atari_init_IRQ(void)
139{ 139{
140 m68k_setup_user_interrupt(VEC_USER, NUM_ATARI_SOURCES - IRQ_USER, NULL); 140 m68k_setup_user_interrupt(VEC_USER, NUM_ATARI_SOURCES - IRQ_USER);
141 m68k_setup_irq_controller(&atari_irq_chip, handle_simple_irq, 1, 141 m68k_setup_irq_controller(&atari_irq_chip, handle_simple_irq, 1,
142 NUM_ATARI_SOURCES - 1); 142 NUM_ATARI_SOURCES - 1);
143 143
diff --git a/arch/m68k/bvme6000/config.c b/arch/m68k/bvme6000/config.c
index 1edd95095cb4..81286476f740 100644
--- a/arch/m68k/bvme6000/config.c
+++ b/arch/m68k/bvme6000/config.c
@@ -86,7 +86,7 @@ static void bvme6000_get_model(char *model)
86 */ 86 */
87static void __init bvme6000_init_IRQ(void) 87static void __init bvme6000_init_IRQ(void)
88{ 88{
89 m68k_setup_user_interrupt(VEC_USER, 192, NULL); 89 m68k_setup_user_interrupt(VEC_USER, 192);
90} 90}
91 91
92void __init config_bvme6000(void) 92void __init config_bvme6000(void)
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
index 94349a525bc2..6198df5ff245 100644
--- a/arch/m68k/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq.h
@@ -70,9 +70,7 @@ extern unsigned int m68k_irq_startup_irq(unsigned int irq);
70extern void m68k_irq_shutdown(struct irq_data *data); 70extern void m68k_irq_shutdown(struct irq_data *data);
71extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int, 71extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int,
72 struct pt_regs *)); 72 struct pt_regs *));
73extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt, 73extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt);
74 void (*handler)(unsigned int,
75 struct pt_regs *));
76extern void m68k_setup_irq_controller(struct irq_chip *, 74extern void m68k_setup_irq_controller(struct irq_chip *,
77 void (*handle)(unsigned int irq, 75 void (*handle)(unsigned int irq,
78 struct irq_desc *desc), 76 struct irq_desc *desc),
diff --git a/arch/m68k/kernel/entry_mm.S b/arch/m68k/kernel/entry_mm.S
index f5927d0927b4..c713f514843d 100644
--- a/arch/m68k/kernel/entry_mm.S
+++ b/arch/m68k/kernel/entry_mm.S
@@ -48,7 +48,7 @@
48.globl sys_fork, sys_clone, sys_vfork 48.globl sys_fork, sys_clone, sys_vfork
49.globl ret_from_interrupt, bad_interrupt 49.globl ret_from_interrupt, bad_interrupt
50.globl auto_irqhandler_fixup 50.globl auto_irqhandler_fixup
51.globl user_irqvec_fixup, user_irqhandler_fixup 51.globl user_irqvec_fixup
52 52
53.text 53.text
54ENTRY(buserr) 54ENTRY(buserr)
@@ -240,7 +240,6 @@ user_irqvec_fixup = . + 2
240 240
241 movel %sp,%sp@- 241 movel %sp,%sp@-
242 movel %d0,%sp@- | put vector # on stack 242 movel %d0,%sp@- | put vector # on stack
243user_irqhandler_fixup = . + 2
244 jsr do_IRQ | process the IRQ 243 jsr do_IRQ | process the IRQ
245 addql #8,%sp | pop parameters off stack 244 addql #8,%sp | pop parameters off stack
246 245
diff --git a/arch/m68k/kernel/ints.c b/arch/m68k/kernel/ints.c
index e2b056b3a314..74fefac00899 100644
--- a/arch/m68k/kernel/ints.c
+++ b/arch/m68k/kernel/ints.c
@@ -28,7 +28,6 @@
28#endif 28#endif
29 29
30extern u32 auto_irqhandler_fixup[]; 30extern u32 auto_irqhandler_fixup[];
31extern u32 user_irqhandler_fixup[];
32extern u16 user_irqvec_fixup[]; 31extern u16 user_irqvec_fixup[];
33 32
34static int m68k_first_user_vec; 33static int m68k_first_user_vec;
@@ -91,16 +90,12 @@ void __init m68k_setup_auto_interrupt(void (*handler)(unsigned int, struct pt_re
91 * m68k_setup_user_interrupt 90 * m68k_setup_user_interrupt
92 * @vec: first user vector interrupt to handle 91 * @vec: first user vector interrupt to handle
93 * @cnt: number of active user vector interrupts 92 * @cnt: number of active user vector interrupts
94 * @handler: called from user vector interrupts
95 * 93 *
96 * setup user vector interrupts, this includes activating the specified range 94 * setup user vector interrupts, this includes activating the specified range
97 * of interrupts, only then these interrupts can be requested (note: this is 95 * of interrupts, only then these interrupts can be requested (note: this is
98 * different from auto vector interrupts). An optional handler can be installed 96 * different from auto vector interrupts).
99 * to be called instead of the default do_IRQ(), it will be called
100 * with irq numbers starting from IRQ_USER.
101 */ 97 */
102void __init m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt, 98void __init m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt)
103 void (*handler)(unsigned int, struct pt_regs *))
104{ 99{
105 int i; 100 int i;
106 101
@@ -109,8 +104,6 @@ void __init m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
109 for (i = 0; i < cnt; i++) 104 for (i = 0; i < cnt; i++)
110 irq_set_chip(IRQ_USER + i, &user_irq_chip); 105 irq_set_chip(IRQ_USER + i, &user_irq_chip);
111 *user_irqvec_fixup = vec - IRQ_USER; 106 *user_irqvec_fixup = vec - IRQ_USER;
112 if (handler)
113 *user_irqhandler_fixup = (u32)handler;
114 flush_icache(); 107 flush_icache();
115} 108}
116 109
diff --git a/arch/m68k/mvme147/config.c b/arch/m68k/mvme147/config.c
index 01f2adf3f19f..5de924ef42ed 100644
--- a/arch/m68k/mvme147/config.c
+++ b/arch/m68k/mvme147/config.c
@@ -81,7 +81,7 @@ static void mvme147_get_model(char *model)
81 81
82void __init mvme147_init_IRQ(void) 82void __init mvme147_init_IRQ(void)
83{ 83{
84 m68k_setup_user_interrupt(VEC_USER, 192, NULL); 84 m68k_setup_user_interrupt(VEC_USER, 192);
85} 85}
86 86
87void __init config_mvme147(void) 87void __init config_mvme147(void)
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c
index 0b28e2621653..31a66d99cbca 100644
--- a/arch/m68k/mvme16x/config.c
+++ b/arch/m68k/mvme16x/config.c
@@ -117,7 +117,7 @@ static void mvme16x_get_hardware_list(struct seq_file *m)
117 117
118static void __init mvme16x_init_IRQ (void) 118static void __init mvme16x_init_IRQ (void)
119{ 119{
120 m68k_setup_user_interrupt(VEC_USER, 192, NULL); 120 m68k_setup_user_interrupt(VEC_USER, 192);
121} 121}
122 122
123#define pcc2chip ((volatile u_char *)0xfff42000) 123#define pcc2chip ((volatile u_char *)0xfff42000)
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c
index 7eb378195cf7..78b60f53e90a 100644
--- a/arch/m68k/sun3/sun3ints.c
+++ b/arch/m68k/sun3/sun3ints.c
@@ -109,7 +109,7 @@ void __init sun3_init_IRQ(void)
109 109
110 m68k_setup_irq_controller(&sun3_irq_chip, handle_level_irq, IRQ_AUTO_1, 110 m68k_setup_irq_controller(&sun3_irq_chip, handle_level_irq, IRQ_AUTO_1,
111 7); 111 7);
112 m68k_setup_user_interrupt(VEC_USER, 128, NULL); 112 m68k_setup_user_interrupt(VEC_USER, 128);
113 113
114 if (request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL)) 114 if (request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL))
115 pr_err("Couldn't register %s interrupt\n", "int5"); 115 pr_err("Couldn't register %s interrupt\n", "int5");