diff options
author | Magnus Damm <damm@igel.co.jp> | 2008-01-10 00:08:55 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-27 23:19:02 -0500 |
commit | 7f3edee81fbd49114c28057512906f169caa0bed (patch) | |
tree | d1c604fc6cddcd42f00eff1d153e8151ef00ba07 | |
parent | b62ad83d91ebf1368e9e72d476b18698ac67bef9 (diff) |
sh: intc - remove default interrupt priority tables
This patch removes interrupt priority tables from the intc code.
Optimal priority assignment varies with embedded application anyway,
so keeping the interrupt priority tables together with cpu-specific
code doesn't make sense.
The function intc_set_priority() should be used instead to set the
desired interrupt priority level.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r-- | arch/sh/boards/renesas/r7780rp/irq-r7780mp.c | 2 | ||||
-rw-r--r-- | arch/sh/boards/renesas/r7780rp/irq-r7785rp.c | 2 | ||||
-rw-r--r-- | arch/sh/boards/renesas/rts7751r2d/irq.c | 4 | ||||
-rw-r--r-- | arch/sh/cchips/voyagergx/irq.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/irq/intc.c | 31 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh2/setup-sh7619.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh2a/setup-sh7203.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh2a/setup-sh7206.c | 2 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh3/setup-sh7705.c | 10 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh3/setup-sh770x.c | 11 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh3/setup-sh7710.c | 16 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh3/setup-sh7720.c | 14 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4/setup-sh7750.c | 18 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4/setup-sh7760.c | 13 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 10 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7780.c | 13 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-sh7785.c | 19 | ||||
-rw-r--r-- | arch/sh/kernel/cpu/sh4a/setup-shx3.c | 14 | ||||
-rw-r--r-- | include/asm-sh/hw_irq.h | 12 |
19 files changed, 42 insertions, 155 deletions
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c b/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c index 59b47fe061f9..1f8f073f27be 100644 --- a/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c +++ b/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c | |||
@@ -47,7 +47,7 @@ static unsigned char irl2irq[HL_NR_IRL] __initdata = { | |||
47 | }; | 47 | }; |
48 | 48 | ||
49 | static DECLARE_INTC_DESC(intc_desc, "r7780mp", vectors, | 49 | static DECLARE_INTC_DESC(intc_desc, "r7780mp", vectors, |
50 | NULL, NULL, mask_registers, NULL, NULL); | 50 | NULL, mask_registers, NULL, NULL); |
51 | 51 | ||
52 | unsigned char * __init highlander_init_irq_r7780mp(void) | 52 | unsigned char * __init highlander_init_irq_r7780mp(void) |
53 | { | 53 | { |
diff --git a/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c index b2c6a84673bd..bbf18afc29a7 100644 --- a/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c +++ b/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c | |||
@@ -41,7 +41,7 @@ static unsigned char irl2irq[HL_NR_IRL] __initdata = { | |||
41 | }; | 41 | }; |
42 | 42 | ||
43 | static DECLARE_INTC_DESC(intc_desc, "r7785rp", vectors, | 43 | static DECLARE_INTC_DESC(intc_desc, "r7785rp", vectors, |
44 | NULL, NULL, mask_registers, NULL, NULL); | 44 | NULL, mask_registers, NULL, NULL); |
45 | 45 | ||
46 | unsigned char * __init highlander_init_irq_r7785rp(void) | 46 | unsigned char * __init highlander_init_irq_r7785rp(void) |
47 | { | 47 | { |
diff --git a/arch/sh/boards/renesas/rts7751r2d/irq.c b/arch/sh/boards/renesas/rts7751r2d/irq.c index 7cc2813adfe4..3fecd49e0d2a 100644 --- a/arch/sh/boards/renesas/rts7751r2d/irq.c +++ b/arch/sh/boards/renesas/rts7751r2d/irq.c | |||
@@ -71,7 +71,7 @@ static unsigned char irl2irq_r2d_1[R2D_NR_IRL] __initdata = { | |||
71 | }; | 71 | }; |
72 | 72 | ||
73 | static DECLARE_INTC_DESC(intc_desc_r2d_1, "r2d-1", vectors_r2d_1, | 73 | static DECLARE_INTC_DESC(intc_desc_r2d_1, "r2d-1", vectors_r2d_1, |
74 | NULL, NULL, mask_registers_r2d_1, NULL, NULL); | 74 | NULL, mask_registers_r2d_1, NULL, NULL); |
75 | 75 | ||
76 | #endif /* CONFIG_RTS7751R2D_1 */ | 76 | #endif /* CONFIG_RTS7751R2D_1 */ |
77 | 77 | ||
@@ -109,7 +109,7 @@ static unsigned char irl2irq_r2d_plus[R2D_NR_IRL] __initdata = { | |||
109 | }; | 109 | }; |
110 | 110 | ||
111 | static DECLARE_INTC_DESC(intc_desc_r2d_plus, "r2d-plus", vectors_r2d_plus, | 111 | static DECLARE_INTC_DESC(intc_desc_r2d_plus, "r2d-plus", vectors_r2d_plus, |
112 | NULL, NULL, mask_registers_r2d_plus, NULL, NULL); | 112 | NULL, mask_registers_r2d_plus, NULL, NULL); |
113 | 113 | ||
114 | #endif /* CONFIG_RTS7751R2D_PLUS */ | 114 | #endif /* CONFIG_RTS7751R2D_PLUS */ |
115 | 115 | ||
diff --git a/arch/sh/cchips/voyagergx/irq.c b/arch/sh/cchips/voyagergx/irq.c index ade303876841..e7e78c612fad 100644 --- a/arch/sh/cchips/voyagergx/irq.c +++ b/arch/sh/cchips/voyagergx/irq.c | |||
@@ -58,7 +58,7 @@ static struct intc_mask_reg mask_registers[] __initdata = { | |||
58 | }; | 58 | }; |
59 | 59 | ||
60 | static DECLARE_INTC_DESC(intc_desc, "voyagergx", vectors, | 60 | static DECLARE_INTC_DESC(intc_desc, "voyagergx", vectors, |
61 | NULL, NULL, mask_registers, NULL, NULL); | 61 | NULL, mask_registers, NULL, NULL); |
62 | 62 | ||
63 | static unsigned int voyagergx_stat2irq[32] = { | 63 | static unsigned int voyagergx_stat2irq[32] = { |
64 | IRQ_SM501_CI, IRQ_SM501_PV, IRQ_SM501_ZD, IRQ_SM501_2D, | 64 | IRQ_SM501_CI, IRQ_SM501_PV, IRQ_SM501_ZD, IRQ_SM501_2D, |
diff --git a/arch/sh/kernel/cpu/irq/intc.c b/arch/sh/kernel/cpu/irq/intc.c index 6ac018c15e03..84806b2027f8 100644 --- a/arch/sh/kernel/cpu/irq/intc.c +++ b/arch/sh/kernel/cpu/irq/intc.c | |||
@@ -335,31 +335,6 @@ static intc_enum __init intc_grp_id(struct intc_desc *desc, | |||
335 | return 0; | 335 | return 0; |
336 | } | 336 | } |
337 | 337 | ||
338 | static unsigned int __init intc_prio_value(struct intc_desc *desc, | ||
339 | intc_enum enum_id, int do_grps) | ||
340 | { | ||
341 | struct intc_prio *p = desc->priorities; | ||
342 | unsigned int i; | ||
343 | |||
344 | for (i = 0; p && enum_id && i < desc->nr_priorities; i++) { | ||
345 | p = desc->priorities + i; | ||
346 | |||
347 | if (p->enum_id != enum_id) | ||
348 | continue; | ||
349 | |||
350 | return p->priority; | ||
351 | } | ||
352 | |||
353 | if (do_grps) | ||
354 | return intc_prio_value(desc, intc_grp_id(desc, enum_id), 0); | ||
355 | |||
356 | /* default to the lowest priority possible if no priority is set | ||
357 | * - this needs to be at least 2 for 5-bit priorities on 7780 | ||
358 | */ | ||
359 | |||
360 | return 2; | ||
361 | } | ||
362 | |||
363 | static unsigned int __init intc_mask_data(struct intc_desc *desc, | 338 | static unsigned int __init intc_mask_data(struct intc_desc *desc, |
364 | struct intc_desc_int *d, | 339 | struct intc_desc_int *d, |
365 | intc_enum enum_id, int do_grps) | 340 | intc_enum enum_id, int do_grps) |
@@ -518,8 +493,10 @@ static void __init intc_register_irq(struct intc_desc *desc, | |||
518 | handle_level_irq, "level"); | 493 | handle_level_irq, "level"); |
519 | set_irq_chip_data(irq, (void *)data[primary]); | 494 | set_irq_chip_data(irq, (void *)data[primary]); |
520 | 495 | ||
521 | /* record the desired priority level */ | 496 | /* set priority level |
522 | intc_prio_level[irq] = intc_prio_value(desc, enum_id, 1); | 497 | * - this needs to be at least 2 for 5-bit priorities on 7780 |
498 | */ | ||
499 | intc_prio_level[irq] = 2; | ||
523 | 500 | ||
524 | /* enable secondary masking method if present */ | 501 | /* enable secondary masking method if present */ |
525 | if (data[!primary]) | 502 | if (data[!primary]) |
diff --git a/arch/sh/kernel/cpu/sh2/setup-sh7619.c b/arch/sh/kernel/cpu/sh2/setup-sh7619.c index ec6adc3f306f..b230eb278cef 100644 --- a/arch/sh/kernel/cpu/sh2/setup-sh7619.c +++ b/arch/sh/kernel/cpu/sh2/setup-sh7619.c | |||
@@ -65,7 +65,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
65 | }; | 65 | }; |
66 | 66 | ||
67 | static DECLARE_INTC_DESC(intc_desc, "sh7619", vectors, groups, | 67 | static DECLARE_INTC_DESC(intc_desc, "sh7619", vectors, groups, |
68 | NULL, NULL, prio_registers, NULL); | 68 | NULL, prio_registers, NULL); |
69 | 69 | ||
70 | static struct plat_sci_port sci_platform_data[] = { | 70 | static struct plat_sci_port sci_platform_data[] = { |
71 | { | 71 | { |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c index 3518f9c37d93..db6ef5cecde1 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7203.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7203.c | |||
@@ -235,7 +235,7 @@ static struct intc_mask_reg mask_registers[] __initdata = { | |||
235 | }; | 235 | }; |
236 | 236 | ||
237 | static DECLARE_INTC_DESC(intc_desc, "sh7203", vectors, groups, | 237 | static DECLARE_INTC_DESC(intc_desc, "sh7203", vectors, groups, |
238 | NULL, mask_registers, prio_registers, NULL); | 238 | mask_registers, prio_registers, NULL); |
239 | 239 | ||
240 | static struct plat_sci_port sci_platform_data[] = { | 240 | static struct plat_sci_port sci_platform_data[] = { |
241 | { | 241 | { |
diff --git a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c index bd745aa87222..a564425b905f 100644 --- a/arch/sh/kernel/cpu/sh2a/setup-sh7206.c +++ b/arch/sh/kernel/cpu/sh2a/setup-sh7206.c | |||
@@ -167,7 +167,7 @@ static struct intc_mask_reg mask_registers[] __initdata = { | |||
167 | }; | 167 | }; |
168 | 168 | ||
169 | static DECLARE_INTC_DESC(intc_desc, "sh7206", vectors, groups, | 169 | static DECLARE_INTC_DESC(intc_desc, "sh7206", vectors, groups, |
170 | NULL, mask_registers, prio_registers, NULL); | 170 | mask_registers, prio_registers, NULL); |
171 | 171 | ||
172 | static struct plat_sci_port sci_platform_data[] = { | 172 | static struct plat_sci_port sci_platform_data[] = { |
173 | { | 173 | { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7705.c b/arch/sh/kernel/cpu/sh3/setup-sh7705.c index f6c65f2659e9..dd0a20a685f7 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7705.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7705.c | |||
@@ -66,12 +66,6 @@ static struct intc_group groups[] __initdata = { | |||
66 | INTC_GROUP(SCIF2, SCIF2_ERI, SCIF2_RXI, SCIF2_TXI), | 66 | INTC_GROUP(SCIF2, SCIF2_ERI, SCIF2_RXI, SCIF2_TXI), |
67 | }; | 67 | }; |
68 | 68 | ||
69 | static struct intc_prio priorities[] __initdata = { | ||
70 | INTC_PRIO(DMAC, 7), | ||
71 | INTC_PRIO(SCIF2, 3), | ||
72 | INTC_PRIO(SCIF0, 3), | ||
73 | }; | ||
74 | |||
75 | static struct intc_prio_reg prio_registers[] __initdata = { | 69 | static struct intc_prio_reg prio_registers[] __initdata = { |
76 | { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, | 70 | { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, |
77 | { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF_RCMI, 0, 0 } }, | 71 | { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF_RCMI, 0, 0 } }, |
@@ -85,7 +79,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
85 | }; | 79 | }; |
86 | 80 | ||
87 | static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, groups, | 81 | static DECLARE_INTC_DESC(intc_desc, "sh7705", vectors, groups, |
88 | priorities, NULL, prio_registers, NULL); | 82 | NULL, prio_registers, NULL); |
89 | 83 | ||
90 | static struct intc_vect vectors_irq[] __initdata = { | 84 | static struct intc_vect vectors_irq[] __initdata = { |
91 | INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), | 85 | INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), |
@@ -93,7 +87,7 @@ static struct intc_vect vectors_irq[] __initdata = { | |||
93 | }; | 87 | }; |
94 | 88 | ||
95 | static DECLARE_INTC_DESC(intc_desc_irq, "sh7705-irq", vectors_irq, NULL, | 89 | static DECLARE_INTC_DESC(intc_desc_irq, "sh7705-irq", vectors_irq, NULL, |
96 | priorities, NULL, prio_registers, NULL); | 90 | NULL, prio_registers, NULL); |
97 | 91 | ||
98 | static struct plat_sci_port sci_platform_data[] = { | 92 | static struct plat_sci_port sci_platform_data[] = { |
99 | { | 93 | { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh770x.c b/arch/sh/kernel/cpu/sh3/setup-sh770x.c index 60b04b1f9453..969804bb523b 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c | |||
@@ -81,13 +81,6 @@ static struct intc_group groups[] __initdata = { | |||
81 | INTC_GROUP(SCIF2, SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI), | 81 | INTC_GROUP(SCIF2, SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI), |
82 | }; | 82 | }; |
83 | 83 | ||
84 | static struct intc_prio priorities[] __initdata = { | ||
85 | INTC_PRIO(DMAC, 7), | ||
86 | INTC_PRIO(SCI, 3), | ||
87 | INTC_PRIO(SCIF2, 3), | ||
88 | INTC_PRIO(SCIF0, 3), | ||
89 | }; | ||
90 | |||
91 | static struct intc_prio_reg prio_registers[] __initdata = { | 84 | static struct intc_prio_reg prio_registers[] __initdata = { |
92 | { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, | 85 | { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, |
93 | { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, SCI, 0 } }, | 86 | { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, SCI, 0 } }, |
@@ -109,7 +102,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
109 | }; | 102 | }; |
110 | 103 | ||
111 | static DECLARE_INTC_DESC(intc_desc, "sh770x", vectors, groups, | 104 | static DECLARE_INTC_DESC(intc_desc, "sh770x", vectors, groups, |
112 | priorities, NULL, prio_registers, NULL); | 105 | NULL, prio_registers, NULL); |
113 | 106 | ||
114 | #if defined(CONFIG_CPU_SUBTYPE_SH7706) || \ | 107 | #if defined(CONFIG_CPU_SUBTYPE_SH7706) || \ |
115 | defined(CONFIG_CPU_SUBTYPE_SH7707) || \ | 108 | defined(CONFIG_CPU_SUBTYPE_SH7707) || \ |
@@ -120,7 +113,7 @@ static struct intc_vect vectors_irq[] __initdata = { | |||
120 | }; | 113 | }; |
121 | 114 | ||
122 | static DECLARE_INTC_DESC(intc_desc_irq, "sh770x-irq", vectors_irq, NULL, | 115 | static DECLARE_INTC_DESC(intc_desc_irq, "sh770x-irq", vectors_irq, NULL, |
123 | priorities, NULL, prio_registers, NULL); | 116 | NULL, prio_registers, NULL); |
124 | #endif | 117 | #endif |
125 | 118 | ||
126 | static struct resource rtc_resources[] = { | 119 | static struct resource rtc_resources[] = { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7710.c b/arch/sh/kernel/cpu/sh3/setup-sh7710.c index 84e5629fa841..0cc0e2bf135d 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7710.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7710.c | |||
@@ -73,18 +73,6 @@ static struct intc_group groups[] __initdata = { | |||
73 | INTC_GROUP(SIOF1, SIOF1_ERI, SIOF1_TXI, SIOF1_RXI, SIOF1_CCI), | 73 | INTC_GROUP(SIOF1, SIOF1_ERI, SIOF1_TXI, SIOF1_RXI, SIOF1_CCI), |
74 | }; | 74 | }; |
75 | 75 | ||
76 | static struct intc_prio priorities[] __initdata = { | ||
77 | INTC_PRIO(DMAC1, 7), | ||
78 | INTC_PRIO(DMAC2, 7), | ||
79 | INTC_PRIO(SCIF0, 3), | ||
80 | INTC_PRIO(SCIF1, 3), | ||
81 | INTC_PRIO(SIOF0, 3), | ||
82 | INTC_PRIO(SIOF1, 3), | ||
83 | INTC_PRIO(EDMAC0, 5), | ||
84 | INTC_PRIO(EDMAC1, 5), | ||
85 | INTC_PRIO(EDMAC2, 5), | ||
86 | }; | ||
87 | |||
88 | static struct intc_prio_reg prio_registers[] __initdata = { | 76 | static struct intc_prio_reg prio_registers[] __initdata = { |
89 | { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, | 77 | { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, |
90 | { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, 0, 0 } }, | 78 | { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, 0, 0 } }, |
@@ -101,7 +89,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
101 | }; | 89 | }; |
102 | 90 | ||
103 | static DECLARE_INTC_DESC(intc_desc, "sh7710", vectors, groups, | 91 | static DECLARE_INTC_DESC(intc_desc, "sh7710", vectors, groups, |
104 | priorities, NULL, prio_registers, NULL); | 92 | NULL, prio_registers, NULL); |
105 | 93 | ||
106 | static struct intc_vect vectors_irq[] __initdata = { | 94 | static struct intc_vect vectors_irq[] __initdata = { |
107 | INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), | 95 | INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620), |
@@ -109,7 +97,7 @@ static struct intc_vect vectors_irq[] __initdata = { | |||
109 | }; | 97 | }; |
110 | 98 | ||
111 | static DECLARE_INTC_DESC(intc_desc_irq, "sh7710-irq", vectors_irq, NULL, | 99 | static DECLARE_INTC_DESC(intc_desc_irq, "sh7710-irq", vectors_irq, NULL, |
112 | priorities, NULL, prio_registers, NULL); | 100 | NULL, prio_registers, NULL); |
113 | 101 | ||
114 | static struct resource rtc_resources[] = { | 102 | static struct resource rtc_resources[] = { |
115 | [0] = { | 103 | [0] = { |
diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7720.c b/arch/sh/kernel/cpu/sh3/setup-sh7720.c index 00facd028a08..c00471a89212 100644 --- a/arch/sh/kernel/cpu/sh3/setup-sh7720.c +++ b/arch/sh/kernel/cpu/sh3/setup-sh7720.c | |||
@@ -156,16 +156,6 @@ static struct intc_group groups[] __initdata = { | |||
156 | INTC_GROUP(MMC, MMCI0, MMCI1, MMCI2, MMCI3), | 156 | INTC_GROUP(MMC, MMCI0, MMCI1, MMCI2, MMCI3), |
157 | }; | 157 | }; |
158 | 158 | ||
159 | static struct intc_prio priorities[] __initdata = { | ||
160 | INTC_PRIO(SCIF0, 2), | ||
161 | INTC_PRIO(SCIF1, 2), | ||
162 | INTC_PRIO(DMAC1, 1), | ||
163 | INTC_PRIO(DMAC2, 1), | ||
164 | INTC_PRIO(RTC, 2), | ||
165 | INTC_PRIO(TMU, 2), | ||
166 | INTC_PRIO(TPU, 2), | ||
167 | }; | ||
168 | |||
169 | static struct intc_prio_reg prio_registers[] __initdata = { | 159 | static struct intc_prio_reg prio_registers[] __initdata = { |
170 | { 0xA414FEE2UL, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, | 160 | { 0xA414FEE2UL, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, |
171 | { 0xA414FEE4UL, 0, 16, 4, /* IPRB */ { WDT, REF_RCMI, SIM, 0 } }, | 161 | { 0xA414FEE4UL, 0, 16, 4, /* IPRB */ { WDT, REF_RCMI, SIM, 0 } }, |
@@ -184,7 +174,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
184 | }; | 174 | }; |
185 | 175 | ||
186 | static DECLARE_INTC_DESC(intc_desc, "sh7720", vectors, groups, | 176 | static DECLARE_INTC_DESC(intc_desc, "sh7720", vectors, groups, |
187 | priorities, NULL, prio_registers, NULL); | 177 | NULL, prio_registers, NULL); |
188 | 178 | ||
189 | static struct intc_sense_reg sense_registers[] __initdata = { | 179 | static struct intc_sense_reg sense_registers[] __initdata = { |
190 | { INTC_ICR1, 16, 2, { 0, 0, IRQ5, IRQ4, IRQ3, IRQ2, IRQ1, IRQ0 } }, | 180 | { INTC_ICR1, 16, 2, { 0, 0, IRQ5, IRQ4, IRQ3, IRQ2, IRQ1, IRQ0 } }, |
@@ -197,7 +187,7 @@ static struct intc_vect vectors_irq[] __initdata = { | |||
197 | }; | 187 | }; |
198 | 188 | ||
199 | static DECLARE_INTC_DESC(intc_irq_desc, "sh7720-irq", vectors_irq, | 189 | static DECLARE_INTC_DESC(intc_irq_desc, "sh7720-irq", vectors_irq, |
200 | NULL, priorities, NULL, prio_registers, sense_registers); | 190 | NULL, NULL, prio_registers, sense_registers); |
201 | 191 | ||
202 | void __init plat_irq_setup_pins(int mode) | 192 | void __init plat_irq_setup_pins(int mode) |
203 | { | 193 | { |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7750.c b/arch/sh/kernel/cpu/sh4/setup-sh7750.c index 523f68a9ce0e..ae3603aca615 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7750.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7750.c | |||
@@ -126,12 +126,6 @@ static struct intc_group groups[] __initdata = { | |||
126 | INTC_GROUP(REF, REF_RCMI, REF_ROVI), | 126 | INTC_GROUP(REF, REF_RCMI, REF_ROVI), |
127 | }; | 127 | }; |
128 | 128 | ||
129 | static struct intc_prio priorities[] __initdata = { | ||
130 | INTC_PRIO(SCIF, 3), | ||
131 | INTC_PRIO(SCI1, 3), | ||
132 | INTC_PRIO(DMAC, 7), | ||
133 | }; | ||
134 | |||
135 | static struct intc_prio_reg prio_registers[] __initdata = { | 129 | static struct intc_prio_reg prio_registers[] __initdata = { |
136 | { 0xffd00004, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, | 130 | { 0xffd00004, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } }, |
137 | { 0xffd00008, 0, 16, 4, /* IPRB */ { WDT, REF, SCI1, 0 } }, | 131 | { 0xffd00008, 0, 16, 4, /* IPRB */ { WDT, REF, SCI1, 0 } }, |
@@ -143,7 +137,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
143 | }; | 137 | }; |
144 | 138 | ||
145 | static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, groups, | 139 | static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, groups, |
146 | priorities, NULL, prio_registers, NULL); | 140 | NULL, prio_registers, NULL); |
147 | 141 | ||
148 | /* SH7750, SH7750S, SH7751 and SH7091 all have 4-channel DMA controllers */ | 142 | /* SH7750, SH7750S, SH7751 and SH7091 all have 4-channel DMA controllers */ |
149 | #if defined(CONFIG_CPU_SUBTYPE_SH7750) || \ | 143 | #if defined(CONFIG_CPU_SUBTYPE_SH7750) || \ |
@@ -163,7 +157,7 @@ static struct intc_group groups_dma4[] __initdata = { | |||
163 | 157 | ||
164 | static DECLARE_INTC_DESC(intc_desc_dma4, "sh7750_dma4", | 158 | static DECLARE_INTC_DESC(intc_desc_dma4, "sh7750_dma4", |
165 | vectors_dma4, groups_dma4, | 159 | vectors_dma4, groups_dma4, |
166 | priorities, NULL, prio_registers, NULL); | 160 | NULL, prio_registers, NULL); |
167 | #endif | 161 | #endif |
168 | 162 | ||
169 | /* SH7750R and SH7751R both have 8-channel DMA controllers */ | 163 | /* SH7750R and SH7751R both have 8-channel DMA controllers */ |
@@ -184,7 +178,7 @@ static struct intc_group groups_dma8[] __initdata = { | |||
184 | 178 | ||
185 | static DECLARE_INTC_DESC(intc_desc_dma8, "sh7750_dma8", | 179 | static DECLARE_INTC_DESC(intc_desc_dma8, "sh7750_dma8", |
186 | vectors_dma8, groups_dma8, | 180 | vectors_dma8, groups_dma8, |
187 | priorities, NULL, prio_registers, NULL); | 181 | NULL, prio_registers, NULL); |
188 | #endif | 182 | #endif |
189 | 183 | ||
190 | /* SH7750R, SH7751 and SH7751R all have two extra timer channels */ | 184 | /* SH7750R, SH7751 and SH7751R all have two extra timer channels */ |
@@ -205,7 +199,7 @@ static struct intc_mask_reg mask_registers[] __initdata = { | |||
205 | }; | 199 | }; |
206 | 200 | ||
207 | static DECLARE_INTC_DESC(intc_desc_tmu34, "sh7750_tmu34", | 201 | static DECLARE_INTC_DESC(intc_desc_tmu34, "sh7750_tmu34", |
208 | vectors_tmu34, NULL, priorities, | 202 | vectors_tmu34, NULL, |
209 | mask_registers, prio_registers, NULL); | 203 | mask_registers, prio_registers, NULL); |
210 | #endif | 204 | #endif |
211 | 205 | ||
@@ -216,7 +210,7 @@ static struct intc_vect vectors_irlm[] __initdata = { | |||
216 | }; | 210 | }; |
217 | 211 | ||
218 | static DECLARE_INTC_DESC(intc_desc_irlm, "sh7750_irlm", vectors_irlm, NULL, | 212 | static DECLARE_INTC_DESC(intc_desc_irlm, "sh7750_irlm", vectors_irlm, NULL, |
219 | priorities, NULL, prio_registers, NULL); | 213 | NULL, prio_registers, NULL); |
220 | 214 | ||
221 | /* SH7751 and SH7751R both have PCI */ | 215 | /* SH7751 and SH7751R both have PCI */ |
222 | #if defined(CONFIG_CPU_SUBTYPE_SH7751) || defined(CONFIG_CPU_SUBTYPE_SH7751R) | 216 | #if defined(CONFIG_CPU_SUBTYPE_SH7751) || defined(CONFIG_CPU_SUBTYPE_SH7751R) |
@@ -233,7 +227,7 @@ static struct intc_group groups_pci[] __initdata = { | |||
233 | }; | 227 | }; |
234 | 228 | ||
235 | static DECLARE_INTC_DESC(intc_desc_pci, "sh7750_pci", vectors_pci, groups_pci, | 229 | static DECLARE_INTC_DESC(intc_desc_pci, "sh7750_pci", vectors_pci, groups_pci, |
236 | priorities, mask_registers, prio_registers, NULL); | 230 | mask_registers, prio_registers, NULL); |
237 | #endif | 231 | #endif |
238 | 232 | ||
239 | #if defined(CONFIG_CPU_SUBTYPE_SH7750) || \ | 233 | #if defined(CONFIG_CPU_SUBTYPE_SH7750) || \ |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh7760.c b/arch/sh/kernel/cpu/sh4/setup-sh7760.c index 7a898cb1d940..85f81579b97e 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh7760.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh7760.c | |||
@@ -92,15 +92,6 @@ static struct intc_group groups[] __initdata = { | |||
92 | INTC_GROUP(REF, REF_RCMI, REF_ROVI), | 92 | INTC_GROUP(REF, REF_RCMI, REF_ROVI), |
93 | }; | 93 | }; |
94 | 94 | ||
95 | static struct intc_prio priorities[] __initdata = { | ||
96 | INTC_PRIO(SCIF0, 3), | ||
97 | INTC_PRIO(SCIF1, 3), | ||
98 | INTC_PRIO(SCIF2, 3), | ||
99 | INTC_PRIO(SIM, 3), | ||
100 | INTC_PRIO(DMAC, 7), | ||
101 | INTC_PRIO(DMABRG, 13), | ||
102 | }; | ||
103 | |||
104 | static struct intc_mask_reg mask_registers[] __initdata = { | 95 | static struct intc_mask_reg mask_registers[] __initdata = { |
105 | { 0xfe080040, 0xfe080060, 32, /* INTMSK00 / INTMSKCLR00 */ | 96 | { 0xfe080040, 0xfe080060, 32, /* INTMSK00 / INTMSKCLR00 */ |
106 | { IRQ4, IRQ5, IRQ6, IRQ7, 0, 0, HCAN20, HCAN21, | 97 | { IRQ4, IRQ5, IRQ6, IRQ7, 0, 0, HCAN20, HCAN21, |
@@ -132,7 +123,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
132 | }; | 123 | }; |
133 | 124 | ||
134 | static DECLARE_INTC_DESC(intc_desc, "sh7760", vectors, groups, | 125 | static DECLARE_INTC_DESC(intc_desc, "sh7760", vectors, groups, |
135 | priorities, mask_registers, prio_registers, NULL); | 126 | mask_registers, prio_registers, NULL); |
136 | 127 | ||
137 | static struct intc_vect vectors_irq[] __initdata = { | 128 | static struct intc_vect vectors_irq[] __initdata = { |
138 | INTC_VECT(IRL0, 0x240), INTC_VECT(IRL1, 0x2a0), | 129 | INTC_VECT(IRL0, 0x240), INTC_VECT(IRL1, 0x2a0), |
@@ -140,7 +131,7 @@ static struct intc_vect vectors_irq[] __initdata = { | |||
140 | }; | 131 | }; |
141 | 132 | ||
142 | static DECLARE_INTC_DESC(intc_desc_irq, "sh7760-irq", vectors_irq, groups, | 133 | static DECLARE_INTC_DESC(intc_desc_irq, "sh7760-irq", vectors_irq, groups, |
143 | priorities, mask_registers, prio_registers, NULL); | 134 | mask_registers, prio_registers, NULL); |
144 | 135 | ||
145 | static struct plat_sci_port sci_platform_data[] = { | 136 | static struct plat_sci_port sci_platform_data[] = { |
146 | { | 137 | { |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c index b9c6547c4a90..73c778d40d13 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7722.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | |||
@@ -157,14 +157,6 @@ static struct intc_group groups[] __initdata = { | |||
157 | INTC_GROUP(SDHI, SDHI0, SDHI1, SDHI2, SDHI3), | 157 | INTC_GROUP(SDHI, SDHI0, SDHI1, SDHI2, SDHI3), |
158 | }; | 158 | }; |
159 | 159 | ||
160 | static struct intc_prio priorities[] __initdata = { | ||
161 | INTC_PRIO(SCIF0, 3), | ||
162 | INTC_PRIO(SCIF1, 3), | ||
163 | INTC_PRIO(SCIF2, 3), | ||
164 | INTC_PRIO(TMU0, 2), | ||
165 | INTC_PRIO(TMU1, 2), | ||
166 | }; | ||
167 | |||
168 | static struct intc_mask_reg mask_registers[] __initdata = { | 160 | static struct intc_mask_reg mask_registers[] __initdata = { |
169 | { 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */ | 161 | { 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */ |
170 | { } }, | 162 | { } }, |
@@ -217,7 +209,7 @@ static struct intc_sense_reg sense_registers[] __initdata = { | |||
217 | { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } }, | 209 | { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } }, |
218 | }; | 210 | }; |
219 | 211 | ||
220 | static DECLARE_INTC_DESC(intc_desc, "sh7722", vectors, groups, priorities, | 212 | static DECLARE_INTC_DESC(intc_desc, "sh7722", vectors, groups, |
221 | mask_registers, prio_registers, sense_registers); | 213 | mask_registers, prio_registers, sense_registers); |
222 | 214 | ||
223 | void __init plat_irq_setup(void) | 215 | void __init plat_irq_setup(void) |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c index e8fd33ff0605..293004b526ff 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7780.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7780.c | |||
@@ -168,11 +168,6 @@ static struct intc_group groups[] __initdata = { | |||
168 | INTC_GROUP(GPIO, GPIOI0, GPIOI1, GPIOI2, GPIOI3), | 168 | INTC_GROUP(GPIO, GPIOI0, GPIOI1, GPIOI2, GPIOI3), |
169 | }; | 169 | }; |
170 | 170 | ||
171 | static struct intc_prio priorities[] __initdata = { | ||
172 | INTC_PRIO(SCIF0, 3), | ||
173 | INTC_PRIO(SCIF1, 3), | ||
174 | }; | ||
175 | |||
176 | static struct intc_mask_reg mask_registers[] __initdata = { | 171 | static struct intc_mask_reg mask_registers[] __initdata = { |
177 | { 0xffd40038, 0xffd4003c, 32, /* INT2MSKR / INT2MSKCR */ | 172 | { 0xffd40038, 0xffd4003c, 32, /* INT2MSKR / INT2MSKCR */ |
178 | { 0, 0, 0, 0, 0, 0, GPIO, FLCTL, | 173 | { 0, 0, 0, 0, 0, 0, GPIO, FLCTL, |
@@ -195,7 +190,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
195 | { 0xffd4001c, 0, 32, 8, /* INT2PRI7 */ { FLCTL, GPIO } }, | 190 | { 0xffd4001c, 0, 32, 8, /* INT2PRI7 */ { FLCTL, GPIO } }, |
196 | }; | 191 | }; |
197 | 192 | ||
198 | static DECLARE_INTC_DESC(intc_desc, "sh7780", vectors, groups, priorities, | 193 | static DECLARE_INTC_DESC(intc_desc, "sh7780", vectors, groups, |
199 | mask_registers, prio_registers, NULL); | 194 | mask_registers, prio_registers, NULL); |
200 | 195 | ||
201 | /* Support for external interrupt pins in IRQ mode */ | 196 | /* Support for external interrupt pins in IRQ mode */ |
@@ -223,7 +218,7 @@ static struct intc_sense_reg irq_sense_registers[] __initdata = { | |||
223 | }; | 218 | }; |
224 | 219 | ||
225 | static DECLARE_INTC_DESC(intc_irq_desc, "sh7780-irq", irq_vectors, | 220 | static DECLARE_INTC_DESC(intc_irq_desc, "sh7780-irq", irq_vectors, |
226 | NULL, NULL, irq_mask_registers, irq_prio_registers, | 221 | NULL, irq_mask_registers, irq_prio_registers, |
227 | irq_sense_registers); | 222 | irq_sense_registers); |
228 | 223 | ||
229 | /* External interrupt pins in IRL mode */ | 224 | /* External interrupt pins in IRL mode */ |
@@ -257,10 +252,10 @@ static struct intc_mask_reg irl7654_mask_registers[] __initdata = { | |||
257 | }; | 252 | }; |
258 | 253 | ||
259 | static DECLARE_INTC_DESC(intc_irl7654_desc, "sh7780-irl7654", irl_vectors, | 254 | static DECLARE_INTC_DESC(intc_irl7654_desc, "sh7780-irl7654", irl_vectors, |
260 | NULL, NULL, irl7654_mask_registers, NULL, NULL); | 255 | NULL, irl7654_mask_registers, NULL, NULL); |
261 | 256 | ||
262 | static DECLARE_INTC_DESC(intc_irl3210_desc, "sh7780-irl3210", irl_vectors, | 257 | static DECLARE_INTC_DESC(intc_irl3210_desc, "sh7780-irl3210", irl_vectors, |
263 | NULL, NULL, irl3210_mask_registers, NULL, NULL); | 258 | NULL, irl3210_mask_registers, NULL, NULL); |
264 | 259 | ||
265 | #define INTC_ICR0 0xffd00000 | 260 | #define INTC_ICR0 0xffd00000 |
266 | #define INTC_INTMSK0 0xffd00044 | 261 | #define INTC_INTMSK0 0xffd00044 |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c index 39b215d6cee5..74b60e96cdf4 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-sh7785.c +++ b/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | |||
@@ -178,15 +178,6 @@ static struct intc_group groups[] __initdata = { | |||
178 | INTC_GROUP(GPIO, GPIOI0, GPIOI1, GPIOI2, GPIOI3), | 178 | INTC_GROUP(GPIO, GPIOI0, GPIOI1, GPIOI2, GPIOI3), |
179 | }; | 179 | }; |
180 | 180 | ||
181 | static struct intc_prio priorities[] __initdata = { | ||
182 | INTC_PRIO(SCIF0, 3), | ||
183 | INTC_PRIO(SCIF1, 3), | ||
184 | INTC_PRIO(SCIF2, 3), | ||
185 | INTC_PRIO(SCIF3, 3), | ||
186 | INTC_PRIO(SCIF4, 3), | ||
187 | INTC_PRIO(SCIF5, 3), | ||
188 | }; | ||
189 | |||
190 | static struct intc_mask_reg mask_registers[] __initdata = { | 181 | static struct intc_mask_reg mask_registers[] __initdata = { |
191 | { 0xffd00044, 0xffd00064, 32, /* INTMSK0 / INTMSKCLR0 */ | 182 | { 0xffd00044, 0xffd00064, 32, /* INTMSK0 / INTMSKCLR0 */ |
192 | { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } }, | 183 | { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } }, |
@@ -227,7 +218,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
227 | { 0xffd40024, 0, 32, 8, /* INT2PRI9 */ { DU, GDTA, } }, | 218 | { 0xffd40024, 0, 32, 8, /* INT2PRI9 */ { DU, GDTA, } }, |
228 | }; | 219 | }; |
229 | 220 | ||
230 | static DECLARE_INTC_DESC(intc_desc, "sh7785", vectors, groups, priorities, | 221 | static DECLARE_INTC_DESC(intc_desc, "sh7785", vectors, groups, |
231 | mask_registers, prio_registers, NULL); | 222 | mask_registers, prio_registers, NULL); |
232 | 223 | ||
233 | /* Support for external interrupt pins in IRQ mode */ | 224 | /* Support for external interrupt pins in IRQ mode */ |
@@ -248,11 +239,11 @@ static struct intc_sense_reg sense_registers[] __initdata = { | |||
248 | }; | 239 | }; |
249 | 240 | ||
250 | static DECLARE_INTC_DESC(intc_desc_irq0123, "sh7785-irq0123", vectors_irq0123, | 241 | static DECLARE_INTC_DESC(intc_desc_irq0123, "sh7785-irq0123", vectors_irq0123, |
251 | NULL, NULL, mask_registers, prio_registers, | 242 | NULL, mask_registers, prio_registers, |
252 | sense_registers); | 243 | sense_registers); |
253 | 244 | ||
254 | static DECLARE_INTC_DESC(intc_desc_irq4567, "sh7785-irq4567", vectors_irq4567, | 245 | static DECLARE_INTC_DESC(intc_desc_irq4567, "sh7785-irq4567", vectors_irq4567, |
255 | NULL, NULL, mask_registers, prio_registers, | 246 | NULL, mask_registers, prio_registers, |
256 | sense_registers); | 247 | sense_registers); |
257 | 248 | ||
258 | /* External interrupt pins in IRL mode */ | 249 | /* External interrupt pins in IRL mode */ |
@@ -280,10 +271,10 @@ static struct intc_vect vectors_irl4567[] __initdata = { | |||
280 | }; | 271 | }; |
281 | 272 | ||
282 | static DECLARE_INTC_DESC(intc_desc_irl0123, "sh7785-irl0123", vectors_irl0123, | 273 | static DECLARE_INTC_DESC(intc_desc_irl0123, "sh7785-irl0123", vectors_irl0123, |
283 | NULL, NULL, mask_registers, NULL, NULL); | 274 | NULL, mask_registers, NULL, NULL); |
284 | 275 | ||
285 | static DECLARE_INTC_DESC(intc_desc_irl4567, "sh7785-irl4567", vectors_irl4567, | 276 | static DECLARE_INTC_DESC(intc_desc_irl4567, "sh7785-irl4567", vectors_irl4567, |
286 | NULL, NULL, mask_registers, NULL, NULL); | 277 | NULL, mask_registers, NULL, NULL); |
287 | 278 | ||
288 | #define INTC_ICR0 0xffd00000 | 279 | #define INTC_ICR0 0xffd00000 |
289 | #define INTC_INTMSK0 0xffd00044 | 280 | #define INTC_INTMSK0 0xffd00044 |
diff --git a/arch/sh/kernel/cpu/sh4a/setup-shx3.c b/arch/sh/kernel/cpu/sh4a/setup-shx3.c index c6cdd7e3b049..4dc958b6b314 100644 --- a/arch/sh/kernel/cpu/sh4a/setup-shx3.c +++ b/arch/sh/kernel/cpu/sh4a/setup-shx3.c | |||
@@ -165,13 +165,6 @@ static struct intc_group groups[] __initdata = { | |||
165 | INTC_GROUP(DTU3, DTU3_TEND, DTU3_AE, DTU3_TMISS), | 165 | INTC_GROUP(DTU3, DTU3_TEND, DTU3_AE, DTU3_TMISS), |
166 | }; | 166 | }; |
167 | 167 | ||
168 | static struct intc_prio priorities[] __initdata = { | ||
169 | INTC_PRIO(SCIF0, 3), | ||
170 | INTC_PRIO(SCIF1, 3), | ||
171 | INTC_PRIO(SCIF2, 3), | ||
172 | INTC_PRIO(SCIF3, 3), | ||
173 | }; | ||
174 | |||
175 | static struct intc_mask_reg mask_registers[] __initdata = { | 168 | static struct intc_mask_reg mask_registers[] __initdata = { |
176 | { 0xfe410030, 0xfe410050, 32, /* CnINTMSK0 / CnINTMSKCLR0 */ | 169 | { 0xfe410030, 0xfe410050, 32, /* CnINTMSK0 / CnINTMSKCLR0 */ |
177 | { IRQ0, IRQ1, IRQ2, IRQ3 } }, | 170 | { IRQ0, IRQ1, IRQ2, IRQ3 } }, |
@@ -218,7 +211,7 @@ static struct intc_prio_reg prio_registers[] __initdata = { | |||
218 | INTICI3, INTICI2, INTICI1, INTICI0 }, INTC_SMP(4, 4) }, | 211 | INTICI3, INTICI2, INTICI1, INTICI0 }, INTC_SMP(4, 4) }, |
219 | }; | 212 | }; |
220 | 213 | ||
221 | static DECLARE_INTC_DESC(intc_desc, "shx3", vectors, groups, priorities, | 214 | static DECLARE_INTC_DESC(intc_desc, "shx3", vectors, groups, |
222 | mask_registers, prio_registers, NULL); | 215 | mask_registers, prio_registers, NULL); |
223 | 216 | ||
224 | /* Support for external interrupt pins in IRQ mode */ | 217 | /* Support for external interrupt pins in IRQ mode */ |
@@ -232,8 +225,7 @@ static struct intc_sense_reg sense_registers[] __initdata = { | |||
232 | }; | 225 | }; |
233 | 226 | ||
234 | static DECLARE_INTC_DESC(intc_desc_irq, "shx3-irq", vectors_irq, groups, | 227 | static DECLARE_INTC_DESC(intc_desc_irq, "shx3-irq", vectors_irq, groups, |
235 | priorities, mask_registers, prio_registers, | 228 | mask_registers, prio_registers, sense_registers); |
236 | sense_registers); | ||
237 | 229 | ||
238 | /* External interrupt pins in IRL mode */ | 230 | /* External interrupt pins in IRL mode */ |
239 | static struct intc_vect vectors_irl[] __initdata = { | 231 | static struct intc_vect vectors_irl[] __initdata = { |
@@ -248,7 +240,7 @@ static struct intc_vect vectors_irl[] __initdata = { | |||
248 | }; | 240 | }; |
249 | 241 | ||
250 | static DECLARE_INTC_DESC(intc_desc_irl, "shx3-irl", vectors_irl, groups, | 242 | static DECLARE_INTC_DESC(intc_desc_irl, "shx3-irl", vectors_irl, groups, |
251 | priorities, mask_registers, prio_registers, NULL); | 243 | mask_registers, prio_registers, NULL); |
252 | 244 | ||
253 | void __init plat_irq_setup_pins(int mode) | 245 | void __init plat_irq_setup_pins(int mode) |
254 | { | 246 | { |
diff --git a/include/asm-sh/hw_irq.h b/include/asm-sh/hw_irq.h index cb0b6c9f7020..c958fdaa0095 100644 --- a/include/asm-sh/hw_irq.h +++ b/include/asm-sh/hw_irq.h | |||
@@ -33,13 +33,6 @@ struct intc_vect { | |||
33 | #define INTC_VECT(enum_id, vect) { enum_id, vect } | 33 | #define INTC_VECT(enum_id, vect) { enum_id, vect } |
34 | #define INTC_IRQ(enum_id, irq) INTC_VECT(enum_id, irq2evt(irq)) | 34 | #define INTC_IRQ(enum_id, irq) INTC_VECT(enum_id, irq2evt(irq)) |
35 | 35 | ||
36 | struct intc_prio { | ||
37 | intc_enum enum_id; | ||
38 | unsigned char priority; | ||
39 | }; | ||
40 | |||
41 | #define INTC_PRIO(enum_id, prio) { enum_id, prio } | ||
42 | |||
43 | struct intc_group { | 36 | struct intc_group { |
44 | intc_enum enum_id; | 37 | intc_enum enum_id; |
45 | intc_enum enum_ids[32]; | 38 | intc_enum enum_ids[32]; |
@@ -79,8 +72,6 @@ struct intc_desc { | |||
79 | unsigned int nr_vectors; | 72 | unsigned int nr_vectors; |
80 | struct intc_group *groups; | 73 | struct intc_group *groups; |
81 | unsigned int nr_groups; | 74 | unsigned int nr_groups; |
82 | struct intc_prio *priorities; | ||
83 | unsigned int nr_priorities; | ||
84 | struct intc_mask_reg *mask_regs; | 75 | struct intc_mask_reg *mask_regs; |
85 | unsigned int nr_mask_regs; | 76 | unsigned int nr_mask_regs; |
86 | struct intc_prio_reg *prio_regs; | 77 | struct intc_prio_reg *prio_regs; |
@@ -92,10 +83,9 @@ struct intc_desc { | |||
92 | 83 | ||
93 | #define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a) | 84 | #define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a) |
94 | #define DECLARE_INTC_DESC(symbol, chipname, vectors, groups, \ | 85 | #define DECLARE_INTC_DESC(symbol, chipname, vectors, groups, \ |
95 | priorities, mask_regs, prio_regs, sense_regs) \ | 86 | mask_regs, prio_regs, sense_regs) \ |
96 | struct intc_desc symbol __initdata = { \ | 87 | struct intc_desc symbol __initdata = { \ |
97 | _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ | 88 | _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ |
98 | _INTC_ARRAY(priorities), \ | ||
99 | _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ | 89 | _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ |
100 | _INTC_ARRAY(sense_regs), \ | 90 | _INTC_ARRAY(sense_regs), \ |
101 | chipname, \ | 91 | chipname, \ |