linux-kernel.vger.kernel.org archive mirror
 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 12:06:53 -0800	[thread overview]
Message-ID: <4D7A80DD.7000909@codeaurora.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1103112020370.2787@localhost6.localdomain6>

Thomas Gleixner wrote:
> On Fri, 11 Mar 2011, Abhijeet Dharmapurikar wrote:
>>>> Yes however while updating the code I noticed that I would need to keep
>>>> account of all the interrupts enabled and all the interrupts marked
>>>> wakeup.
>>>> This aids in switching to the wakeup set in the suspend callback and the
>>>> enabled set in the resume callback. I will update the resume callback to
>>>> enable the interrupts in irqs_allowed(the local state storage) in the next
>>>> patch (my current patch does not do that).
>>>>
>>>> IOW I need to keep the local state storage.
>>> Wrong. The interrupts are disabled and reenabled by the core code and
>>> not by some extra suspend/resume callbacks in your driver. The core
>>> checks those marked as IRQ_WAKE, the wake callback to the irq chip is
>>> only there if you need to set up some hardware register in order to
>>> make the wake functionality work. So again, you don't need local state
>>> as the core tracks the state for you.
>> Help me understand this, the core code calls disable on all the interrupts
>> while going to suspend. Notice that I have no disable callback, which means
>> those interrupts remain unmasked.
>>
>> The genirq code does not mask the interrupt while going to suspend, it only
>> calls disable(), which I understand should not mask the interrupt for
>> check_wakeup_irqs() to work.
>>
>> If I don't mask that accelerometer interrupts in the interrupt controller's
>> suspend() the phone will wakeup every time the user moves around, draining the
>> battery unnecessarily.
> 
> That's why we mark the interrupts which can wake up from suspend with
> set_wake() so you can configure your hardware accordingly. That's how
> all other stuff works, at least how it's supposed to work. 
> 
> If there is no way to tell the interrupt controller which interrupts
> are wakeup sources and which are not, then working around it with
> local state and private suspend/resume functions is the WRONG answer.
> 
> Simply because this kind of misdesigned hardware will creep up over
> and over and we want to handle these cases in the core. Even for a
> sinlge instance like yours solving it in the core is the right thing
> to do, because it's a ~3 lines patch to the core code to get this
> done.

~3 lines patch to the code sounds promising. Please tell me how?


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

  parent reply	other threads:[~2011-03-11 20:06 UTC|newest]

Thread overview: 31+ 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 ` [Qualcomm PM8921 MFD v2 1/6] mfd: pm8921: Add PMIC 8921 core driver adharmap
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 12:04   ` Thomas Gleixner
2011-03-09  5:21     ` Abhijeet Dharmapurikar
2011-03-10 10:32       ` Thomas Gleixner
2011-03-11  4:43         ` Abhijeet Dharmapurikar
2011-03-11 17:57           ` Thomas Gleixner
2011-03-11 19:02             ` Abhijeet Dharmapurikar
2011-03-11 19:43               ` Thomas Gleixner
2011-03-11 19:57                 ` Mark Brown
2011-03-11 20:12                   ` Thomas Gleixner
2011-03-11 20:06                 ` Abhijeet Dharmapurikar [this message]
2011-03-11 20:37                   ` Thomas Gleixner
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-12  9:36   ` Grant Likely
2011-03-16 18:55     ` Abhijeet Dharmapurikar
2011-03-16 19:54       ` Grant Likely
2011-03-16 19:56         ` Mark Brown
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 23:30   ` Mark Brown
2011-03-10  3:36     ` Abhijeet Dharmapurikar
2011-03-10  3:56       ` Trilok Soni
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 23:31   ` Mark Brown
2011-03-08  6:09 ` [Qualcomm PM8921 MFD v2 6/6] msm: board-8960: Add support for pm8921 adharmap

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=4D7A80DD.7000909@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).