diff options
author | Philippe Langlais <philippe.langlais@linaro.org> | 2012-03-19 09:24:14 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@linaro.org> | 2012-03-19 09:24:14 +0100 |
commit | f7733363e6625437f4d42faf58d22dfd247a6c77 (patch) | |
tree | 4c837a761d8e1a6d8489624433edb52944d492fe /arch/arm/mach-ux500/modem-irq-db5500.c | |
parent | 2c69f23b00d63695704fffb24571d7b5bf857403 (diff) | |
parent | dccf714b737a9e6de759045f32ba07d93ada36e5 (diff) |
Merge topic branch 'modem' into integration-linux-ux500-3.3
Diffstat (limited to 'arch/arm/mach-ux500/modem-irq-db5500.c')
-rw-r--r-- | arch/arm/mach-ux500/modem-irq-db5500.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-ux500/modem-irq-db5500.c b/arch/arm/mach-ux500/modem-irq-db5500.c index 6b86416c94c..7c2947af984 100644 --- a/arch/arm/mach-ux500/modem-irq-db5500.c +++ b/arch/arm/mach-ux500/modem-irq-db5500.c @@ -81,7 +81,7 @@ static irqreturn_t modem_cpu_irq_handler(int irq, void *data) virt_irq); if (virt_irq != 0) - generic_handle_irq(virt_irq); + handle_nested_irq(virt_irq); pr_debug("modem_irq: Done handling virtual IRQ %d!\n", virt_irq); @@ -91,6 +91,7 @@ static irqreturn_t modem_cpu_irq_handler(int irq, void *data) static void create_virtual_irq(int irq, struct irq_chip *modem_irq_chip) { irq_set_chip_and_handler(irq, modem_irq_chip, handle_simple_irq); + irq_set_nested_thread(irq, 1); set_irq_flags(irq, IRQF_VALID); pr_debug("modem_irq: Created virtual IRQ %d\n", irq); @@ -131,7 +132,8 @@ static int modem_irq_init(void) create_virtual_irq(MBOX_PAIR2_VIRT_IRQ, &modem_irq_chip); err = request_threaded_irq(IRQ_DB5500_MODEM, NULL, - modem_cpu_irq_handler, IRQF_ONESHOT, + modem_cpu_irq_handler, + IRQF_NO_SUSPEND | IRQF_ONESHOT, "modem_irq", mi); if (err) pr_err("modem_irq: Could not register IRQ %d\n", |