Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <peng.fan@oss.nxp.com>
To: Dhruva Gole <d-gole@ti.com>
Cc: Peng Fan <peng.fan@nxp.com>, Ulf Hansson <ulf.hansson@linaro.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Pavel Machek <pavel@kernel.org>,
	Peter Chen <peter.chen@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>,
	Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Xu Yang <xu.yang_2@nxp.com>,
	linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org, imx@lists.linux.dev,
	arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 1/4] pmdomain: core: Introduce device_set/get_out_band_wakeup()
Date: Thu, 18 Sep 2025 21:12:30 +0800	[thread overview]
Message-ID: <20250918131230.GD9196@nxa18884-linux.ap.freescale.net> (raw)
In-Reply-To: <20250918095950.h7wmz2qj5e6khtwr@lcpd911>

Hi Dhruva,

On Thu, Sep 18, 2025 at 03:29:50PM +0530, Dhruva Gole wrote:
>On Sep 02, 2025 at 11:33:00 +0800, Peng Fan wrote:
>> For some cases, a device could still wakeup the system even if its power
>> domain is in off state, because the device's wakeup hardware logic is
>> in an always-on domain.
>> 
>> To support this case, introduce device_set/get_out_band_wakeup() to
>> allow device drivers to control the behaviour in genpd for a device
>> that is attached to it.
>> 
>
>Thinking more into it, to me it seems like if the intent here is to only
>allow the device drivers to figure out whether they should be or not be
>executing the suspend/resume_noirqs then that can still be checked by
>wisely using the device set_wakeup APIs in the driver itself.
>
>Not sure why this patch should be necessary for a
>driver to execute the suspend_noirq or not. That decision can very well
>be taken inside the driver's suspend resume_noirq hooks based on wakeup
>capability and wake_enabled statuses.

I should join today's SCMI meeting, but something else caught me (:

Thanks for looking into this. 

In genpd_suspend_finish, genpd_sync_power_off will be called if
"(device_awake_path(dev) && genpd_is_active_wakeup(genpd))" is false.
So if the device is enabled wakeup, the genpd will not be turned off because
the check return true.

But to i.MX, if the device is configured as wakeup source, we still need to
power off the power domain, because the device has out-of-band wakeup logic.

This patch is to make sure the power domain could be powered off in
suspend flow and powered up in resume flow.

Thanks,
Peng

>
>Just a pseudo code:
>```
>driver_suspend_noirq () {
>	if (device_may_wakeup()) {
>		// do the sequence where the power domain might get turned off
>		// but like you say device can do some out band wakeup
>		return XXX;
>	}
>	// regular suspend sequence here... maybe inband wakeup config / clk
>	// disable etc...
>}
> ```
>
>And something similar in resume_noirq?
>
>Just need to make sure that the probe func does the
>device_set_wakeup_enable or capable stuff correctly as per your H/w and
>wakeup requirements...
>
>
>-- 
>Best regards,
>Dhruva Gole
>Texas Instruments Incorporated


  reply	other threads:[~2025-09-18 12:01 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-02  3:32 [PATCH v3 0/4] pmdomain: core: Introduce device_set/get_out_band_wakeup and use it in usb Peng Fan
2025-09-02  3:33 ` [PATCH v3 1/4] pmdomain: core: Introduce device_set/get_out_band_wakeup() Peng Fan
2025-09-02  8:53   ` Xu Yang
2025-09-18  5:39   ` Dhruva Gole
2025-09-18  9:59   ` Dhruva Gole
2025-09-18 13:12     ` Peng Fan [this message]
2025-09-18 13:40       ` Dhruva Gole
2025-09-18 14:18         ` Ulf Hansson
2025-09-18 14:57   ` Ulf Hansson
2025-09-02  3:33 ` [PATCH v3 2/4] usb: chipidea: core: detach power domain for ci_hdrc platform device Peng Fan
2025-09-02  8:54   ` Xu Yang
2025-09-18 15:11   ` Ulf Hansson
2025-09-02  3:33 ` [PATCH v3 3/4] usb: chipidea: ci_hdrc_imx: Set out of band wakeup for i.MX95 Peng Fan
2025-09-02  8:55   ` Xu Yang
2025-09-18 15:14   ` Ulf Hansson
2025-09-02  3:33 ` [PATCH v3 4/4] usb: dwc3: imx8mp: " Peng Fan
2025-09-02  8:56   ` Xu Yang
2025-09-18 15:15   ` Ulf Hansson
2025-09-11 14:45 ` [PATCH v3 0/4] pmdomain: core: Introduce device_set/get_out_band_wakeup and use it in usb Ulf Hansson
2025-09-12  4:53   ` Peng Fan

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=20250918131230.GD9196@nxa18884-linux.ap.freescale.net \
    --to=peng.fan@oss.nxp.com \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=arm-scmi@vger.kernel.org \
    --cc=d-gole@ti.com \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=lenb@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=pavel@kernel.org \
    --cc=peng.fan@nxp.com \
    --cc=peter.chen@kernel.org \
    --cc=rafael@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vincent.guittot@linaro.org \
    --cc=xu.yang_2@nxp.com \
    /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