diff options
| -rw-r--r-- | drivers/irqchip/irq-omap-intc.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/irqchip/irq-omap-intc.c b/drivers/irqchip/irq-omap-intc.c index e97b53539386..7681b1329976 100644 --- a/drivers/irqchip/irq-omap-intc.c +++ b/drivers/irqchip/irq-omap-intc.c | |||
| @@ -51,6 +51,8 @@ | |||
| 51 | #define INTCPS_NR_ILR_REGS 128 | 51 | #define INTCPS_NR_ILR_REGS 128 |
| 52 | #define INTCPS_NR_MIR_REGS 3 | 52 | #define INTCPS_NR_MIR_REGS 3 |
| 53 | 53 | ||
| 54 | #define INTC_PROTECTION_ENABLE (1 << 0) | ||
| 55 | |||
| 54 | /* | 56 | /* |
| 55 | * OMAP2 has a number of different interrupt controllers, each interrupt | 57 | * OMAP2 has a number of different interrupt controllers, each interrupt |
| 56 | * controller is identified as its own "bank". Register definitions are | 58 | * controller is identified as its own "bank". Register definitions are |
| @@ -290,12 +292,28 @@ static int __init omap_init_irq_legacy(u32 base) | |||
| 290 | return 0; | 292 | return 0; |
| 291 | } | 293 | } |
| 292 | 294 | ||
| 295 | static void __init omap_irq_enable_protection(void) | ||
| 296 | { | ||
| 297 | u32 reg; | ||
| 298 | |||
| 299 | reg = intc_readl(INTC_PROTECTION); | ||
| 300 | reg |= INTC_PROTECTION_ENABLE; | ||
| 301 | intc_writel(INTC_PROTECTION, reg); | ||
| 302 | } | ||
| 303 | |||
| 293 | static int __init omap_init_irq(u32 base, struct device_node *node) | 304 | static int __init omap_init_irq(u32 base, struct device_node *node) |
| 294 | { | 305 | { |
| 306 | int ret; | ||
| 307 | |||
| 295 | if (node) | 308 | if (node) |
| 296 | return omap_init_irq_of(node); | 309 | ret = omap_init_irq_of(node); |
| 297 | else | 310 | else |
| 298 | return omap_init_irq_legacy(base); | 311 | ret = omap_init_irq_legacy(base); |
| 312 | |||
| 313 | if (ret == 0) | ||
| 314 | omap_irq_enable_protection(); | ||
| 315 | |||
| 316 | return ret; | ||
| 299 | } | 317 | } |
| 300 | 318 | ||
| 301 | static asmlinkage void __exception_irq_entry | 319 | static asmlinkage void __exception_irq_entry |
