diff options
author | Franck Bui-Huu <fbuihuu@gmail.com> | 2006-12-01 12:22:27 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-12-06 15:16:08 -0500 |
commit | e77c232cfc6e1250b2916a7c69225d6634d05a49 (patch) | |
tree | a5a193c3d6d7f8c8a9eb35d970dd47fa867e5e24 /arch/mips/tx4938 | |
parent | 1ccd1c1c35a6cb21da32479931d4fa6d47320095 (diff) |
[MIPS] Compile __do_IRQ() when really needed
__do_IRQ() is needed only by irq handlers that can't use
default handlers defined in kernel/irq/chip.c.
For others platforms there's no need to compile this function
since it won't be used. For those platforms this patch defines
GENERIC_HARDIRQS_NO__DO_IRQ symbol which is used exactly for
this purpose.
Futhermore for platforms which do not use __do_IRQ(), end()
method which is part of the 'irq_chip' structure is not used.
This patch simply removes this method in this case.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/tx4938')
-rw-r--r-- | arch/mips/tx4938/common/irq.c | 20 | ||||
-rw-r--r-- | arch/mips/tx4938/toshiba_rbtx4938/irq.c | 10 |
2 files changed, 0 insertions, 30 deletions
diff --git a/arch/mips/tx4938/common/irq.c b/arch/mips/tx4938/common/irq.c index 42e127683ae9..a347b424d91c 100644 --- a/arch/mips/tx4938/common/irq.c +++ b/arch/mips/tx4938/common/irq.c | |||
@@ -39,11 +39,9 @@ | |||
39 | 39 | ||
40 | static void tx4938_irq_cp0_enable(unsigned int irq); | 40 | static void tx4938_irq_cp0_enable(unsigned int irq); |
41 | static void tx4938_irq_cp0_disable(unsigned int irq); | 41 | static void tx4938_irq_cp0_disable(unsigned int irq); |
42 | static void tx4938_irq_cp0_end(unsigned int irq); | ||
43 | 42 | ||
44 | static void tx4938_irq_pic_enable(unsigned int irq); | 43 | static void tx4938_irq_pic_enable(unsigned int irq); |
45 | static void tx4938_irq_pic_disable(unsigned int irq); | 44 | static void tx4938_irq_pic_disable(unsigned int irq); |
46 | static void tx4938_irq_pic_end(unsigned int irq); | ||
47 | 45 | ||
48 | /**********************************************************************************/ | 46 | /**********************************************************************************/ |
49 | /* Kernel structs for all pic's */ | 47 | /* Kernel structs for all pic's */ |
@@ -56,7 +54,6 @@ static struct irq_chip tx4938_irq_cp0_type = { | |||
56 | .mask = tx4938_irq_cp0_disable, | 54 | .mask = tx4938_irq_cp0_disable, |
57 | .mask_ack = tx4938_irq_cp0_disable, | 55 | .mask_ack = tx4938_irq_cp0_disable, |
58 | .unmask = tx4938_irq_cp0_enable, | 56 | .unmask = tx4938_irq_cp0_enable, |
59 | .end = tx4938_irq_cp0_end, | ||
60 | }; | 57 | }; |
61 | 58 | ||
62 | #define TX4938_PIC_NAME "TX4938-PIC" | 59 | #define TX4938_PIC_NAME "TX4938-PIC" |
@@ -66,7 +63,6 @@ static struct irq_chip tx4938_irq_pic_type = { | |||
66 | .mask = tx4938_irq_pic_disable, | 63 | .mask = tx4938_irq_pic_disable, |
67 | .mask_ack = tx4938_irq_pic_disable, | 64 | .mask_ack = tx4938_irq_pic_disable, |
68 | .unmask = tx4938_irq_pic_enable, | 65 | .unmask = tx4938_irq_pic_enable, |
69 | .end = tx4938_irq_pic_end, | ||
70 | }; | 66 | }; |
71 | 67 | ||
72 | static struct irqaction tx4938_irq_pic_action = { | 68 | static struct irqaction tx4938_irq_pic_action = { |
@@ -104,14 +100,6 @@ tx4938_irq_cp0_disable(unsigned int irq) | |||
104 | clear_c0_status(tx4938_irq_cp0_mask(irq)); | 100 | clear_c0_status(tx4938_irq_cp0_mask(irq)); |
105 | } | 101 | } |
106 | 102 | ||
107 | static void | ||
108 | tx4938_irq_cp0_end(unsigned int irq) | ||
109 | { | ||
110 | if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) { | ||
111 | tx4938_irq_cp0_enable(irq); | ||
112 | } | ||
113 | } | ||
114 | |||
115 | /**********************************************************************************/ | 103 | /**********************************************************************************/ |
116 | /* Functions for pic */ | 104 | /* Functions for pic */ |
117 | /**********************************************************************************/ | 105 | /**********************************************************************************/ |
@@ -269,14 +257,6 @@ tx4938_irq_pic_disable(unsigned int irq) | |||
269 | tx4938_irq_pic_mask(irq), 0); | 257 | tx4938_irq_pic_mask(irq), 0); |
270 | } | 258 | } |
271 | 259 | ||
272 | static void | ||
273 | tx4938_irq_pic_end(unsigned int irq) | ||
274 | { | ||
275 | if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) { | ||
276 | tx4938_irq_pic_enable(irq); | ||
277 | } | ||
278 | } | ||
279 | |||
280 | /**********************************************************************************/ | 260 | /**********************************************************************************/ |
281 | /* Main init functions */ | 261 | /* Main init functions */ |
282 | /**********************************************************************************/ | 262 | /**********************************************************************************/ |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/irq.c b/arch/mips/tx4938/toshiba_rbtx4938/irq.c index 8c87a35f3068..b6f363d08011 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/irq.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/irq.c | |||
@@ -89,7 +89,6 @@ IRQ Device | |||
89 | 89 | ||
90 | static void toshiba_rbtx4938_irq_ioc_enable(unsigned int irq); | 90 | static void toshiba_rbtx4938_irq_ioc_enable(unsigned int irq); |
91 | static void toshiba_rbtx4938_irq_ioc_disable(unsigned int irq); | 91 | static void toshiba_rbtx4938_irq_ioc_disable(unsigned int irq); |
92 | static void toshiba_rbtx4938_irq_ioc_end(unsigned int irq); | ||
93 | 92 | ||
94 | #define TOSHIBA_RBTX4938_IOC_NAME "RBTX4938-IOC" | 93 | #define TOSHIBA_RBTX4938_IOC_NAME "RBTX4938-IOC" |
95 | static struct irq_chip toshiba_rbtx4938_irq_ioc_type = { | 94 | static struct irq_chip toshiba_rbtx4938_irq_ioc_type = { |
@@ -98,7 +97,6 @@ static struct irq_chip toshiba_rbtx4938_irq_ioc_type = { | |||
98 | .mask = toshiba_rbtx4938_irq_ioc_disable, | 97 | .mask = toshiba_rbtx4938_irq_ioc_disable, |
99 | .mask_ack = toshiba_rbtx4938_irq_ioc_disable, | 98 | .mask_ack = toshiba_rbtx4938_irq_ioc_disable, |
100 | .unmask = toshiba_rbtx4938_irq_ioc_enable, | 99 | .unmask = toshiba_rbtx4938_irq_ioc_enable, |
101 | .end = toshiba_rbtx4938_irq_ioc_end, | ||
102 | }; | 100 | }; |
103 | 101 | ||
104 | #define TOSHIBA_RBTX4938_IOC_INTR_ENAB 0xb7f02000 | 102 | #define TOSHIBA_RBTX4938_IOC_INTR_ENAB 0xb7f02000 |
@@ -167,14 +165,6 @@ toshiba_rbtx4938_irq_ioc_disable(unsigned int irq) | |||
167 | TX4938_RD08(TOSHIBA_RBTX4938_IOC_INTR_ENAB); | 165 | TX4938_RD08(TOSHIBA_RBTX4938_IOC_INTR_ENAB); |
168 | } | 166 | } |
169 | 167 | ||
170 | static void | ||
171 | toshiba_rbtx4938_irq_ioc_end(unsigned int irq) | ||
172 | { | ||
173 | if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) { | ||
174 | toshiba_rbtx4938_irq_ioc_enable(irq); | ||
175 | } | ||
176 | } | ||
177 | |||
178 | extern void __init txx9_spi_irqinit(int irc_irq); | 168 | extern void __init txx9_spi_irqinit(int irc_irq); |
179 | 169 | ||
180 | void __init arch_init_irq(void) | 170 | void __init arch_init_irq(void) |