diff options
author | Tony Lindgren <tony@atomide.com> | 2010-03-01 17:19:05 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-03-01 17:19:05 -0500 |
commit | d702d12167a2c05a346f49aac7a311d597762495 (patch) | |
tree | baae42c299cce34d6df24b5d01f8b1d0b481bd9a /arch/sh/boards/mach-dreamcast/irq.c | |
parent | 9418c65f9bd861d0f7e39aab9cfb3aa6f2275d11 (diff) | |
parent | ac0f6f927db539e03e1f3f61bcd4ed57d5cde7a9 (diff) |
Merge with mainline to remove plat-omap/Kconfig conflict
Conflicts:
arch/arm/plat-omap/Kconfig
Diffstat (limited to 'arch/sh/boards/mach-dreamcast/irq.c')
-rw-r--r-- | arch/sh/boards/mach-dreamcast/irq.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-dreamcast/irq.c b/arch/sh/boards/mach-dreamcast/irq.c index f55fc8e795e9..d932667410ab 100644 --- a/arch/sh/boards/mach-dreamcast/irq.c +++ b/arch/sh/boards/mach-dreamcast/irq.c | |||
@@ -135,3 +135,30 @@ int systemasic_irq_demux(int irq) | |||
135 | /* Not reached */ | 135 | /* Not reached */ |
136 | return irq; | 136 | return irq; |
137 | } | 137 | } |
138 | |||
139 | void systemasic_irq_init(void) | ||
140 | { | ||
141 | int i, nid = cpu_to_node(boot_cpu_data); | ||
142 | |||
143 | /* Assign all virtual IRQs to the System ASIC int. handler */ | ||
144 | for (i = HW_EVENT_IRQ_BASE; i < HW_EVENT_IRQ_MAX; i++) { | ||
145 | unsigned int irq; | ||
146 | |||
147 | irq = create_irq_nr(i, nid); | ||
148 | if (unlikely(irq == 0)) { | ||
149 | pr_err("%s: failed hooking irq %d for systemasic\n", | ||
150 | __func__, i); | ||
151 | return; | ||
152 | } | ||
153 | |||
154 | if (unlikely(irq != i)) { | ||
155 | pr_err("%s: got irq %d but wanted %d, bailing.\n", | ||
156 | __func__, irq, i); | ||
157 | destroy_irq(irq); | ||
158 | return; | ||
159 | } | ||
160 | |||
161 | set_irq_chip_and_handler(i, &systemasic_int, | ||
162 | handle_level_irq); | ||
163 | } | ||
164 | } | ||