[PATCH 3/4] powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri Jul 30 20:30:04 EST 2010


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 at citrix.com>
> Cc: Thomas Gleixner <tglx at linutronix.de>

Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>

> Cc: Paul Mackerras <paulus at samba.org>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Cc: linuxppc-dev at ozlabs.org
> Cc: devicetree-discuss at lists.ozlabs.org
> ---
>  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;
>  	}




More information about the devicetree-discuss mailing list