Re: [PATCH 3/4] powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER fornon-timer interrupts

From: Benjamin Herrenschmidt
Date: Fri Jul 30 2010 - 06:31:00 EST


On Thu, 2010-07-29 at 11:16 +0100, Ian Campbell wrote:
> 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@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Acked-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>

> Cc: Paul Mackerras <paulus@xxxxxxxxx>
> Cc: Grant Likely <grant.likely@xxxxxxxxxxxx>
> Cc: linuxppc-dev@xxxxxxxxxx
> Cc: devicetree-discuss@xxxxxxxxxxxxxxxx
> ---
> arch/powerpc/platforms/powermac/low_i2c.c | 5 +++--
> drivers/macintosh/via-pmu.c | 9 +++++----
> 2 files changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
> index 06a137c..480567e 100644
> --- a/arch/powerpc/platforms/powermac/low_i2c.c
> +++ b/arch/powerpc/platforms/powermac/low_i2c.c
> @@ -542,11 +542,12 @@ static struct pmac_i2c_host_kw *__init kw_i2c_host_init(struct device_node *np)
> /* Make sure IRQ is disabled */
> kw_write_reg(reg_ier, 0);
>
> - /* Request chip interrupt. We set IRQF_TIMER because we don't
> + /* Request chip interrupt. We set IRQF_NO_SUSPEND because we don't
> * want that interrupt disabled between the 2 passes of driver
> * suspend or we'll have issues running the pfuncs
> */
> - if (request_irq(host->irq, kw_i2c_irq, IRQF_TIMER, "keywest i2c", host))
> + if (request_irq(host->irq, kw_i2c_irq, IRQF_NO_SUSPEND,
> + "keywest i2c", host))
> host->irq = NO_IRQ;
>
> printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n",
> diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
> index 3d4fc0f..35bc273 100644
> --- a/drivers/macintosh/via-pmu.c
> +++ b/drivers/macintosh/via-pmu.c
> @@ -400,11 +400,12 @@ static int __init via_pmu_start(void)
> printk(KERN_ERR "via-pmu: can't map interrupt\n");
> return -ENODEV;
> }
> - /* We set IRQF_TIMER because we don't want the interrupt to be disabled
> - * between the 2 passes of driver suspend, we control our own disabling
> - * for that one
> + /* We set IRQF_NO_SUSPEND because we don't want the interrupt
> + * to be disabled between the 2 passes of driver suspend, we
> + * control our own disabling for that one
> */
> - if (request_irq(irq, via_pmu_interrupt, IRQF_TIMER, "VIA-PMU", (void *)0)) {
> + if (request_irq(irq, via_pmu_interrupt, IRQF_NO_SUSPEND,
> + "VIA-PMU", (void *)0)) {
> printk(KERN_ERR "via-pmu: can't request irq %d\n", irq);
> return -ENODEV;
> }


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/