Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts

kw_i2c_irq and via_pmu_interrupt are not timer interrupts and
therefore should not use IRQF_TIMER. Use the recently introduced
IRQF_NO_SUSPEND instead since that is the actual desired behaviour.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: linuxppc-dev@ozlabs.org
Cc: devicetree-discuss@lists.ozlabs.org
LKML-Reference: <1280398595-29708-3-git-send-email-ian.campbell@citrix.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

authored by

Ian Campbell and committed by
Thomas Gleixner
ba461f09 2dd93203

+8 -6
+3 -2
arch/powerpc/platforms/powermac/low_i2c.c
··· 542 542 /* Make sure IRQ is disabled */ 543 543 kw_write_reg(reg_ier, 0); 544 544 545 - /* Request chip interrupt. We set IRQF_TIMER because we don't 545 + /* Request chip interrupt. We set IRQF_NO_SUSPEND because we don't 546 546 * want that interrupt disabled between the 2 passes of driver 547 547 * suspend or we'll have issues running the pfuncs 548 548 */ 549 - if (request_irq(host->irq, kw_i2c_irq, IRQF_TIMER, "keywest i2c", host)) 549 + if (request_irq(host->irq, kw_i2c_irq, IRQF_NO_SUSPEND, 550 + "keywest i2c", host)) 550 551 host->irq = NO_IRQ; 551 552 552 553 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n",
+5 -4
drivers/macintosh/via-pmu.c
··· 400 400 printk(KERN_ERR "via-pmu: can't map interrupt\n"); 401 401 return -ENODEV; 402 402 } 403 - /* We set IRQF_TIMER because we don't want the interrupt to be disabled 404 - * between the 2 passes of driver suspend, we control our own disabling 405 - * for that one 403 + /* We set IRQF_NO_SUSPEND because we don't want the interrupt 404 + * to be disabled between the 2 passes of driver suspend, we 405 + * control our own disabling for that one 406 406 */ 407 - if (request_irq(irq, via_pmu_interrupt, IRQF_TIMER, "VIA-PMU", (void *)0)) { 407 + if (request_irq(irq, via_pmu_interrupt, IRQF_NO_SUSPEND, 408 + "VIA-PMU", (void *)0)) { 408 409 printk(KERN_ERR "via-pmu: can't request irq %d\n", irq); 409 410 return -ENODEV; 410 411 }