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.
next prev 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).