Vineet Gupta | bacdf48 | 2013-01-18 15:12:18 +0530 | [diff] [blame] | 1 | /* |
| 2 | * ARC FPGA Platform IRQ hookups |
| 3 | * |
| 4 | * Copyright (C) 2012 Synopsys, Inc. (www.synopsys.com) |
| 5 | * |
| 6 | * This program is free software; you can redistribute it and/or modify |
| 7 | * it under the terms of the GNU General Public License version 2 as |
| 8 | * published by the Free Software Foundation. |
| 9 | */ |
| 10 | |
| 11 | #include <linux/interrupt.h> |
Vineet Gupta | 41195d2 | 2013-01-18 15:12:23 +0530 | [diff] [blame] | 12 | #include <asm/irq.h> |
Vineet Gupta | bacdf48 | 2013-01-18 15:12:18 +0530 | [diff] [blame] | 13 | |
Vineet Gupta | 877768c | 2013-01-23 16:32:48 +0530 | [diff] [blame^] | 14 | void __init plat_fpga_init_IRQ(void) |
Vineet Gupta | bacdf48 | 2013-01-18 15:12:18 +0530 | [diff] [blame] | 15 | { |
Vineet Gupta | 41195d2 | 2013-01-18 15:12:23 +0530 | [diff] [blame] | 16 | /* |
| 17 | * SMP Hack because UART IRQ hardwired to cpu0 (boot-cpu) but if the |
| 18 | * request_irq() comes from any other CPU, the low level IRQ unamsking |
| 19 | * essential for getting Interrupts won't be enabled on cpu0, locking |
| 20 | * up the UART state machine. |
| 21 | */ |
| 22 | #ifdef CONFIG_SMP |
| 23 | arch_unmask_irq(UART0_IRQ); |
| 24 | #endif |
Vineet Gupta | bacdf48 | 2013-01-18 15:12:18 +0530 | [diff] [blame] | 25 | } |