All of lore.kernel.org
 help / color / mirror / Atom feed
From: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: davidb@codeaurora.org, "David S. Miller" <davem@davemloft.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	Bryan Huntsman <bryanh@codeaurora.org>,
	Daniel Walker <dwalker@fifo99.com>,
	David Collins <collinsd@codeaurora.org>,
	Grant Likely <grant.likely@secretlab.ca>,
	Greg Kroah-Hartman <gregkh@suse.de>,
	Joe Perches <joe@perches.com>,
	Russell King <linux@arm.linux.org.uk>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Stepan Moskovchenko <stepanm@codeaurora.org>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Linus Walleij <linus.walleij@sterricsson.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [Qualcomm PM8921 MFD v2 2/6] mfd: pm8xxx: Add irq support
Date: Fri, 11 Mar 2011 16:13:17 -0800	[thread overview]
Message-ID: <4D7ABA9D.8070705@codeaurora.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1103112112310.2787@localhost6.localdomain6>

Thomas Gleixner wrote:
> So I deduce, that your HW has no way to mark the wakeup
> interrupts. Whack your HW designer on my behalf, please! :)
> 
> Patch below against:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq/core
> 
> It's 8 lines, but that's still at least an order of magnitude less
> than solving this with an workaround. :)
> 
> Thanks,
> 
> 	tglx
> 
> ---------->
> Subject: genirq-force-mask-on-suspend.patch
> From: Thomas Gleixner <tglx@linutronix.de>
> Date: Fri, 11 Mar 2011 21:22:14 +0100
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  include/linux/irq.h |    2 ++
>  kernel/irq/pm.c     |   14 ++++++++++----
>  2 files changed, 12 insertions(+), 4 deletions(-)
> 
> Index: linux-2.6-tip/include/linux/irq.h
> ===================================================================
> --- linux-2.6-tip.orig/include/linux/irq.h
> +++ linux-2.6-tip/include/linux/irq.h
> @@ -330,10 +330,12 @@ struct irq_chip {
>   *
>   * IRQCHIP_SET_TYPE_MASKED:	Mask before calling chip.irq_set_type()
>   * IRQCHIP_EOI_IF_HANDLED:	Only issue irq_eoi() when irq was handled
> + * IRQCHIP_MASK_ON_SUSPEND:	Mask non wake irqs in the suspend path
>   */
>  enum {
>  	IRQCHIP_SET_TYPE_MASKED		= (1 <<  0),
>  	IRQCHIP_EOI_IF_HANDLED		= (1 <<  1),
> +	IRQCHIP_MASK_ON_SUSPEND		= (2 <<  1),
>  };
>  
>  /* This include will go away once we isolated irq_desc usage to core code */
> Index: linux-2.6-tip/kernel/irq/pm.c
> ===================================================================
> --- linux-2.6-tip.orig/kernel/irq/pm.c
> +++ linux-2.6-tip/kernel/irq/pm.c
> @@ -68,10 +68,16 @@ int check_wakeup_irqs(void)
>  	struct irq_desc *desc;
>  	int irq;
>  
> -	for_each_irq_desc(irq, desc)
> -		if (irqd_is_wakeup_set(&desc->irq_data) &&
> -		    (desc->istate & IRQS_PENDING))
> -			return -EBUSY;
> +	for_each_irq_desc(irq, desc) {
> +		if (irqd_is_wakeup_set(&desc->irq_data)) {
> +			if (desc->istate & IRQS_PENDING)
> +				return -EBUSY;
> +			continue;
> +		}
> +		if (desc->istate & IRQS_SUSPENDED &&
> +		    irq_desc_get_chip(desc)->flags & IRQCHIP_MASK_ON_SUSPEND)
> +			mask_irq(desc);
> +	}
>  
>  	return 0;
>  }

Awesome. This addresses the suspend/resume concerns. Thanks so much.
Reviewed-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>

To avoid compile time issues, I will add
.flags = IRQCHIP_MASK_ON_SUSPEND
in my driver at a later time (after this change is pulled in).

--
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm 
Innovation Center, Inc. is a member of the Code Aurora Forum.

WARNING: multiple messages have this Message-ID (diff)
From: adharmap@codeaurora.org (Abhijeet Dharmapurikar)
To: linux-arm-kernel@lists.infradead.org
Subject: [Qualcomm PM8921 MFD v2 2/6] mfd: pm8xxx: Add irq support
Date: Fri, 11 Mar 2011 16:13:17 -0800	[thread overview]
Message-ID: <4D7ABA9D.8070705@codeaurora.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1103112112310.2787@localhost6.localdomain6>

Thomas Gleixner wrote:
> So I deduce, that your HW has no way to mark the wakeup
> interrupts. Whack your HW designer on my behalf, please! :)
> 
> Patch below against:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq/core
> 
> It's 8 lines, but that's still at least an order of magnitude less
> than solving this with an workaround. :)
> 
> Thanks,
> 
> 	tglx
> 
> ---------->
> Subject: genirq-force-mask-on-suspend.patch
> From: Thomas Gleixner <tglx@linutronix.de>
> Date: Fri, 11 Mar 2011 21:22:14 +0100
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  include/linux/irq.h |    2 ++
>  kernel/irq/pm.c     |   14 ++++++++++----
>  2 files changed, 12 insertions(+), 4 deletions(-)
> 
> Index: linux-2.6-tip/include/linux/irq.h
> ===================================================================
> --- linux-2.6-tip.orig/include/linux/irq.h
> +++ linux-2.6-tip/include/linux/irq.h
> @@ -330,10 +330,12 @@ struct irq_chip {
>   *
>   * IRQCHIP_SET_TYPE_MASKED:	Mask before calling chip.irq_set_type()
>   * IRQCHIP_EOI_IF_HANDLED:	Only issue irq_eoi() when irq was handled
> + * IRQCHIP_MASK_ON_SUSPEND:	Mask non wake irqs in the suspend path
>   */
>  enum {
>  	IRQCHIP_SET_TYPE_MASKED		= (1 <<  0),
>  	IRQCHIP_EOI_IF_HANDLED		= (1 <<  1),
> +	IRQCHIP_MASK_ON_SUSPEND		= (2 <<  1),
>  };
>  
>  /* This include will go away once we isolated irq_desc usage to core code */
> Index: linux-2.6-tip/kernel/irq/pm.c
> ===================================================================
> --- linux-2.6-tip.orig/kernel/irq/pm.c
> +++ linux-2.6-tip/kernel/irq/pm.c
> @@ -68,10 +68,16 @@ int check_wakeup_irqs(void)
>  	struct irq_desc *desc;
>  	int irq;
>  
> -	for_each_irq_desc(irq, desc)
> -		if (irqd_is_wakeup_set(&desc->irq_data) &&
> -		    (desc->istate & IRQS_PENDING))
> -			return -EBUSY;
> +	for_each_irq_desc(irq, desc) {
> +		if (irqd_is_wakeup_set(&desc->irq_data)) {
> +			if (desc->istate & IRQS_PENDING)
> +				return -EBUSY;
> +			continue;
> +		}
> +		if (desc->istate & IRQS_SUSPENDED &&
> +		    irq_desc_get_chip(desc)->flags & IRQCHIP_MASK_ON_SUSPEND)
> +			mask_irq(desc);
> +	}
>  
>  	return 0;
>  }

Awesome. This addresses the suspend/resume concerns. Thanks so much.
Reviewed-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>

To avoid compile time issues, I will add
.flags = IRQCHIP_MASK_ON_SUSPEND
in my driver at a later time (after this change is pulled in).

--
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm 
Innovation Center, Inc. is a member of the Code Aurora Forum.

  reply	other threads:[~2011-03-12  0:13 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-08  6:09 [Qualcomm PM8921 MFD v2 0/6] pmic 8921 core and subdevices adharmap
2011-03-08  6:09 ` adharmap at codeaurora.org
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 1/6] mfd: pm8921: Add PMIC 8921 core driver adharmap
2011-03-08  6:09   ` adharmap at codeaurora.org
2011-03-08 17:58   ` Randy Dunlap
2011-03-08 17:58     ` Randy Dunlap
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 2/6] mfd: pm8xxx: Add irq support adharmap
2011-03-08  6:09   ` adharmap at codeaurora.org
2011-03-08 12:04   ` Thomas Gleixner
2011-03-08 12:04     ` Thomas Gleixner
2011-03-09  5:21     ` Abhijeet Dharmapurikar
2011-03-09  5:21       ` Abhijeet Dharmapurikar
2011-03-10 10:32       ` Thomas Gleixner
2011-03-10 10:32         ` Thomas Gleixner
2011-03-11  4:43         ` Abhijeet Dharmapurikar
2011-03-11  4:43           ` Abhijeet Dharmapurikar
2011-03-11 17:57           ` Thomas Gleixner
2011-03-11 17:57             ` Thomas Gleixner
2011-03-11 19:02             ` Abhijeet Dharmapurikar
2011-03-11 19:02               ` Abhijeet Dharmapurikar
2011-03-11 19:43               ` Thomas Gleixner
2011-03-11 19:43                 ` Thomas Gleixner
2011-03-11 19:57                 ` Mark Brown
2011-03-11 19:57                   ` Mark Brown
2011-03-11 20:12                   ` Thomas Gleixner
2011-03-11 20:12                     ` Thomas Gleixner
2011-03-11 20:06                 ` Abhijeet Dharmapurikar
2011-03-11 20:06                   ` Abhijeet Dharmapurikar
2011-03-11 20:37                   ` Thomas Gleixner
2011-03-11 20:37                     ` Thomas Gleixner
2011-03-12  0:13                     ` Abhijeet Dharmapurikar [this message]
2011-03-12  0:13                       ` Abhijeet Dharmapurikar
2011-03-12 10:18                     ` [tip:irq/core] genirq: Add chip flag to force mask on suspend tip-bot for Thomas Gleixner
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 3/6] gpio: pm8xxx-gpio: Add pm8xxx gpio driver adharmap
2011-03-08  6:09   ` adharmap at codeaurora.org
2011-03-12  9:36   ` Grant Likely
2011-03-12  9:36     ` Grant Likely
2011-03-16 18:55     ` Abhijeet Dharmapurikar
2011-03-16 18:55       ` Abhijeet Dharmapurikar
2011-03-16 19:54       ` Grant Likely
2011-03-16 19:54         ` Grant Likely
2011-03-16 19:56         ` Mark Brown
2011-03-16 19:56           ` Mark Brown
2011-03-16 23:06           ` Grant Likely
2011-03-16 23:06             ` Grant Likely
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 4/6] mfd: pm8xxx-mpp: Add pm8xxx MPP driver adharmap
2011-03-08  6:09   ` adharmap at codeaurora.org
2011-03-08 23:30   ` Mark Brown
2011-03-08 23:30     ` Mark Brown
2011-03-10  3:36     ` Abhijeet Dharmapurikar
2011-03-10  3:36       ` Abhijeet Dharmapurikar
2011-03-10  3:56       ` Trilok Soni
2011-03-10  3:56         ` Trilok Soni
2011-03-10 15:13       ` Mark Brown
2011-03-10 15:13         ` Mark Brown
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 5/6] MAINTAINERS: Add patterns for pmic 8921 files to MSM subsystem adharmap
2011-03-08  6:09   ` adharmap at codeaurora.org
2011-03-08 23:31   ` Mark Brown
2011-03-08 23:31     ` Mark Brown
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 6/6] msm: board-8960: Add support for pm8921 adharmap
2011-03-08  6:09   ` adharmap at codeaurora.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D7ABA9D.8070705@codeaurora.org \
    --to=adharmap@codeaurora.org \
    --cc=akpm@linux-foundation.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=bryanh@codeaurora.org \
    --cc=collinsd@codeaurora.org \
    --cc=davem@davemloft.net \
    --cc=davidb@codeaurora.org \
    --cc=dwalker@fifo99.com \
    --cc=grant.likely@secretlab.ca \
    --cc=gregkh@suse.de \
    --cc=joe@perches.com \
    --cc=linus.walleij@sterricsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=sameo@linux.intel.com \
    --cc=stepanm@codeaurora.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.