All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <swboyd@chromium.org>
To: Maulik Shah <mkshah@codeaurora.org>,
	bjorn.andersson@linaro.org, evgreen@chromium.org,
	mka@chromium.org
Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	agross@kernel.org, linus.walleij@linaro.org, tglx@linutronix.de,
	dianders@chromium.org, rnayak@codeaurora.org,
	ilina@codeaurora.org, lsrao@codeaurora.org
Subject: Re: [RFC 1/2] irqchip: qcom: pdc: Introduce irq_set_wake call
Date: Tue, 25 Feb 2020 09:16:00 -0800	[thread overview]
Message-ID: <158265096050.177367.409185999509868538@swboyd.mtv.corp.google.com> (raw)
In-Reply-To: <4c80783d-8ad0-9bd8-c42e-01659fa81afe@codeaurora.org>

Quoting Maulik Shah (2020-02-21 03:20:59)
> 
> On 2/20/2020 7:51 AM, Stephen Boyd wrote:
> 
>     How are wakeups supposed to work when the CPU cluster power is disabled
>     in low power CPU idle modes? Presumably the parent irq controller is
>     powered off (in this case it's an ARM GIC) and we would need to have the
>     interrupt be "enabled" or "unmasked" at the PDC for the irq to wakeup
>     the cluster.
> 
> Correct. Interrupt needs to be "enabled" or "unmasked" at wakeup capable PDC
> for irqchip to wakeup from "deep" low power modes where parent GIC may not be
> monitoring interrupt and only PDC is monitoring.
> these "deep" low power modes can either be triggered by kernel "suspend" or
> "cpuidle" path for which drivers may or may not have registered for suspend or
> cpu/cluster pm notifications to make a decision of enabling wakeup capability.
> 
> 
>     We shouldn't need to enable irq wake on any irq for the CPU
>     to get that interrupt in deep CPU idle states.
> 
> + *
> + *     Note: irq enable/disable state is completely orthogonal
> + *     to the enable/disable state of irq wake.
> 
> i think that's what above documentation said to have wakeup capability is
> orthogonal to enable/disable state of irq, no?
> 
> A deep cpuidle entry is also orthogonal to drivers unless they register for cpu
> pm notifications.
> 
> so with this change,
> if the drivers want their interrupt to be wakeup capable during both "suspend"
> and "cpuidle" they can call "enable_irq_wake" and leave it there to be wake up
> capable.

Where is there a mention about drivers registering for cpu PM
notifications? I'm not aware of this being mentioned as a requirement.
Instead, my understanding is that deep idle states shouldn't affect irqs
from being raised to the CPU. If such an irq is enabled and can't wake
the system from deep idle and it's expected to interrupt during this
idle time then perhaps the PDC driver needs to block deep idle states
until that irq is disabled.

Does this scenario exist? It sounds like broken system design to have an
irq that can't wake from deep idle, but I see that PDC has a selective
set of pins so maybe some irqs just aren't expected to wake the system
up during idle.

> 
> This way they don't need to worry about cpu entering to deep low power mode and
> enabling wakeup capability "only when" deep low power mode get triggered.
>

  parent reply	other threads:[~2020-02-25 17:16 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-17 13:00 [RFC 0/2] pdc: Introduce irq_set_wake call Maulik Shah
2020-02-17 13:00 ` [RFC 1/2] irqchip: qcom: " Maulik Shah
2020-02-20  2:21   ` Stephen Boyd
     [not found]     ` <4c80783d-8ad0-9bd8-c42e-01659fa81afe@codeaurora.org>
2020-02-25 17:16       ` Stephen Boyd [this message]
2020-02-27  1:09         ` Marc Zyngier
2020-03-12 11:33           ` Maulik Shah
2020-03-12 11:38             ` Marc Zyngier
2020-02-17 13:00 ` [RFC 2/2] pinctrl: qcom: Remove forwarding irq_disable and irq_enable call to parent Maulik Shah

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=158265096050.177367.409185999509868538@swboyd.mtv.corp.google.com \
    --to=swboyd@chromium.org \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=dianders@chromium.org \
    --cc=evgreen@chromium.org \
    --cc=ilina@codeaurora.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lsrao@codeaurora.org \
    --cc=mka@chromium.org \
    --cc=mkshah@codeaurora.org \
    --cc=rnayak@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.