All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maulik Shah <mkshah@codeaurora.org>
To: swboyd@chromium.org, mka@chromium.org, evgreen@chromium.org,
	bjorn.andersson@linaro.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,
	Maulik Shah <mkshah@codeaurora.org>
Subject: [RFC 0/2] pdc: Introduce irq_set_wake call
Date: Mon, 17 Feb 2020 18:30:06 +0530	[thread overview]
Message-ID: <1581944408-7656-1-git-send-email-mkshah@codeaurora.org> (raw)

irqchip: qcom: pdc: Introduce irq_set_wake call

Some drivers using gpio interrupts want to configure gpio for wakeup using
enable_irq_wake() but during suspend entry disables irq and expects system
to resume when interrupt occurs. In the driver resume call interrupt is
re-enabled and removes wakeup capability using disable_irq_wake() one such
example is cros ec driver.

With [1] in documentation saying "An irq can be disabled with disable_irq()
and still wake the system as long as the irq has wake enabled".

In such scenario the gpio irq stays disabled at gpio irqchip but needs to
keep enabled in the hierarchy for wakeup capable parent PDC and GIC irqchip
to be able to detect and forward wake capable interrupt to CPU when system
is in sleep state like suspend.

Sending this as an RFC since this series attempts to add support for [1] by
introducing irq_set_wake call for PDC irqchip from which interrupt can be
enabled/disabled at PDC hardware. This also removes irq_chip_enable_parent
and irq_chip_disable_parent calls made from msmgpio irqchip to PDC since
enable and disable at wakeup capable irqchip is now done from irq_set_wake.

Note that *ALL* drivers using wakeup capable interrupt and want to disable
irq with disable_irq() need to call disable_irq_wake() also if they want
to stop wakeup capability at parent PDC irqchip. Not doing so will lead to
system getting woken up from sleep states.

[1] https://www.spinics.net/lists/kernel/msg3398294.html

Maulik Shah (2):
  irqchip: qcom: pdc: Introduce irq_set_wake call
  pinctrl: qcom: Remove forwarding irq_disable and irq_enable call to
    parent

 drivers/irqchip/qcom-pdc.c         | 27 ++++++++++-----------------
 drivers/pinctrl/qcom/pinctrl-msm.c |  7 +------
 2 files changed, 11 insertions(+), 23 deletions(-)

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation

             reply	other threads:[~2020-02-17 13:02 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-17 13:00 Maulik Shah [this message]
2020-02-17 13:00 ` [RFC 1/2] irqchip: qcom: pdc: Introduce irq_set_wake call 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
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=1581944408-7656-1-git-send-email-mkshah@codeaurora.org \
    --to=mkshah@codeaurora.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=rnayak@codeaurora.org \
    --cc=swboyd@chromium.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.