<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/pmdomain/core.c, branch v6.19.11</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v6.19.11</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v6.19.11'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2025-12-04T21:50:39+00:00</updated>
<entry>
<title>Merge tag 'pmdomain-v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm</title>
<updated>2025-12-04T21:50:39+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2025-12-04T21:50:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=52206f82d9244546e5790f5ad64465343aa7ffd5'/>
<id>urn:sha1:52206f82d9244546e5790f5ad64465343aa7ffd5</id>
<content type='text'>
Pull pmdomain updates from Ulf Hansson:
 "pmdomain core:
   - Allow power-off for out-of-band wakeup-capable devices
   - Drop the redundant call to dev_pm_domain_detach() for the amba bus
   - Extend the genpd governor for CPUs to account for IPIs

  pmdomain providers:
   - bcm: Add support for BCM2712
   - mediatek: Add support for MFlexGraphics power domains
   - mediatek: Add support for MT8196 power domains
   - qcom: Add RPMh power domain support for Kaanapali
   - rockchip: Add support for RV1126B

  pmdomain consumers:
   - usb: dwc3: Enable out of band wakeup for i.MX95
   - usb: chipidea: Enable out of band wakeup for i.MX95"

* tag 'pmdomain-v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: (26 commits)
  pmdomain: Extend the genpd governor for CPUs to account for IPIs
  smp: Introduce a helper function to check for pending IPIs
  pmdomain: mediatek: convert from clk round_rate() to determine_rate()
  amba: bus: Drop dev_pm_domain_detach() call
  pmdomain: bcm: bcm2835-power: Prepare to support BCM2712
  pmdomain: mediatek: mtk-mfg: select MAILBOX in Kconfig
  pmdomain: mediatek: Add support for MFlexGraphics
  pmdomain: mediatek: Fix build-errors
  cpuidle: psci: Replace deprecated strcpy in psci_idle_init_cpu
  pmdomain: rockchip: Add support for RV1126B
  pmdomain: mediatek: Add support for MT8196 HFRPSYS power domains
  pmdomain: mediatek: Add support for MT8196 SCPSYS power domains
  pmdomain: mediatek: Add support for secure HWCCF infra power on
  pmdomain: mediatek: Add support for Hardware Voter power domains
  pmdomain: qcom: rpmhpd: Add RPMh power domain support for Kaanapali
  usb: dwc3: imx8mp: Set out of band wakeup for i.MX95
  usb: chipidea: ci_hdrc_imx: Set out of band wakeup for i.MX95
  usb: chipidea: core: detach power domain for ci_hdrc platform device
  pmdomain: core: Allow power-off for out-of-band wakeup-capable devices
  PM: wakeup: Add out-of-band system wakeup support for devices
  ...
</content>
</entry>
<entry>
<title>pmdomain: Respect the CPU system wakeup QoS limit for s2idle</title>
<updated>2025-11-25T18:01:29+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-11-25T11:26:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8e7de6dc420979f4e4443807b71dcc8b72d8c4a9'/>
<id>urn:sha1:8e7de6dc420979f4e4443807b71dcc8b72d8c4a9</id>
<content type='text'>
A CPU system wakeup QoS limit may have been requested by user space. To
avoid breaking this constraint when entering a low power state during
s2idle through genpd, let's extend the corresponding genpd governor for
CPUs. More precisely, during s2idle let the genpd governor select a
suitable domain idle state, by taking into account the QoS limit.

Reviewed-by: Dhruva Gole &lt;d-gole@ti.com&gt;
Reviewed-by: Kevin Hilman (TI) &lt;khilman@baylibre.com&gt;
Tested-by: Kevin Hilman (TI) &lt;khilman@baylibre.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Link: https://patch.msgid.link/20251125112650.329269-3-ulf.hansson@linaro.org
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
</entry>
<entry>
<title>pmdomain: core: Allow power-off for out-of-band wakeup-capable devices</title>
<updated>2025-11-19T17:06:49+00:00</updated>
<author>
<name>Peng Fan</name>
<email>peng.fan@nxp.com</email>
</author>
<published>2025-09-22T02:21:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3b7685da41838eda57f56e804014091769a93700'/>
<id>urn:sha1:3b7685da41838eda57f56e804014091769a93700</id>
<content type='text'>
Currently, if a device is configured as a system wakeup source, the PM
domain core avoids powering off its power domain during system-wide
suspend. However, this can lead to unnecessary power consumption,
especially for devices whose wakeup logic resides in an always-on domain,
i.e., devices with out-of-band wakeup capability.

To address this, add a check for device_out_band_wakeup() in
genpd_finish_suspend(). If the device supports out-of-band wakeup, its
power domain can be safely powered off, just like regular devices without
wakeup enabled. And same check in genpd_finish_resume().

This change improves power efficiency without compromising wakeup
functionality.

Signed-off-by: Peng Fan &lt;peng.fan@nxp.com&gt;
Reviewed-by: Dhruva Gole &lt;d-gole@ti.com&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>pmdomain: core: Restore behaviour for disabling unused PM domains</title>
<updated>2025-09-11T10:36:14+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-09-09T11:11:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=002ebddd695a53999550e241b71950f1aa0e1ac4'/>
<id>urn:sha1:002ebddd695a53999550e241b71950f1aa0e1ac4</id>
<content type='text'>
Recent changes to genpd prevents those PM domains being powered-on during
initialization from being powered-off during the boot sequence. Based upon
whether CONFIG_PM_CONFIG_PM_GENERIC_DOMAINS_OF is set of not, genpd relies
on the sync_state mechanism or the genpd_power_off_unused() (which is a
late_initcall_sync), to understand when it's okay to allow these PM domains
to be powered-off.

This new behaviour in genpd has lead to problems on different platforms.
Let's therefore restore the behavior of genpd_power_off_unused().
Moreover, let's introduce GENPD_FLAG_NO_STAY_ON, to allow genpd OF
providers to opt-out from the new behaviour.

Link: https://lore.kernel.org/all/20250701114733.636510-1-ulf.hansson@linaro.org/
Reported-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Link: https://lore.kernel.org/all/20250902-rk3576-lockup-regression-v1-1-c4a0c9daeb00@collabora.com/
Reported-by: Nicolas Frattaroli &lt;nicolas.frattaroli@collabora.com&gt;
Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
Fixes: 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds on until late_initcall_sync")
Tested-by: Heiko Stuebner &lt;heiko@sntech.de&gt;
Reviewed-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Tested-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>pmdomain: core: introduce dev_pm_genpd_is_on()</title>
<updated>2025-07-16T18:54:27+00:00</updated>
<author>
<name>Hiago De Franco</name>
<email>hiago.franco@toradex.com</email>
</author>
<published>2025-06-29T17:25:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=09813cde376d9d8f30eaf761534532101a0a7755'/>
<id>urn:sha1:09813cde376d9d8f30eaf761534532101a0a7755</id>
<content type='text'>
This helper function returns the current power status of a given generic
power domain.

As example, remoteproc/imx_rproc.c can now use this function to check
the power status of the remote core to properly set "attached" or
"offline" modes.

Suggested-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Reviewed-by: Bjorn Andersson &lt;andersson@kernel.org&gt;
Reviewed-by: Peng Fan &lt;peng.fan@nxp.com&gt;
Signed-off-by: Hiago De Franco &lt;hiago.franco@toradex.com&gt;
Link: https://lore.kernel.org/r/20250629172512.14857-2-hiagofranco@gmail.com
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
</content>
</entry>
<entry>
<title>pmdomain: core: Leave powered-on genpds on until sync_state</title>
<updated>2025-07-09T11:29:57+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-07-01T11:47:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0e789b491ba04c31de5c71249487593e386baa67'/>
<id>urn:sha1:0e789b491ba04c31de5c71249487593e386baa67</id>
<content type='text'>
Powering-off a genpd that was on during boot, before all of its consumer
devices have been probed, is certainly prone to problems.

For OF based platforms we can rely on using the sync_state mechanism that
the fw_devlink provides, to understand when all consumers for a genpd
provider have been probed. Let's therefore prevent these genpds from being
powered-off until the -&gt;sync_state() callback gets called.

Note that, for non-OF based platform we will keep relying on the
late_initcall_sync, which seems to be the best we can do for now.

Suggested-by: Saravana Kannan &lt;saravanak@google.com&gt;
Tested-by: Hiago De Franco &lt;hiago.franco@toradex.com&gt; # Colibri iMX8X
Tested-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt; # TI AM62A,Xilinx ZynqMP ZCU106
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Link: https://lore.kernel.org/r/20250701114733.636510-23-ulf.hansson@linaro.org
</content>
</entry>
<entry>
<title>pmdomain: core: Leave powered-on genpds on until late_initcall_sync</title>
<updated>2025-07-09T11:29:53+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-07-01T11:47:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=13a4b7fb62600e1c0738fdb0b7176555ff05aadf'/>
<id>urn:sha1:13a4b7fb62600e1c0738fdb0b7176555ff05aadf</id>
<content type='text'>
Powering-off a genpd that was on during boot, before all of its consumer
devices have been probed, is certainly prone to problems.

As a step to improve this situation, let's prevent these genpds from being
powered-off until genpd_power_off_unused() gets called, which is a
late_initcall_sync().

Note that, this still doesn't guarantee that all the consumer devices has
been probed before we allow to power-off the genpds. Yet, this should be a
step in the right direction.

Suggested-by: Saravana Kannan &lt;saravanak@google.com&gt;
Tested-by: Hiago De Franco &lt;hiago.franco@toradex.com&gt; # Colibri iMX8X
Tested-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt; # TI AM62A,Xilinx ZynqMP ZCU106
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Link: https://lore.kernel.org/r/20250701114733.636510-22-ulf.hansson@linaro.org
</content>
</entry>
<entry>
<title>pmdomain: core: Default to use of_genpd_sync_state() for genpd providers</title>
<updated>2025-07-09T11:29:50+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-07-01T11:47:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f66c65686abdf317f6ea1ebd3a76a2cdb2020d06'/>
<id>urn:sha1:f66c65686abdf317f6ea1ebd3a76a2cdb2020d06</id>
<content type='text'>
Unless the typical platform driver that act as genpd provider, has its own
-&gt;sync_state() callback implemented let's default to use
of_genpd_sync_state().

More precisely, while adding a genpd OF provider let's assign the
-&gt;sync_state() callback, in case the fwnode has a device and its driver
doesn't have the -&gt;sync_state() set already. In this way the typical
platform driver doesn't need to assign -&gt;sync_state(), unless it has some
additional things to manage beyond genpds.

Suggested-by: Saravana Kannan &lt;saravanak@google.com&gt;
Tested-by: Hiago De Franco &lt;hiago.franco@toradex.com&gt; # Colibri iMX8X
Tested-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt; # TI AM62A,Xilinx ZynqMP ZCU106
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Link: https://lore.kernel.org/r/20250701114733.636510-21-ulf.hansson@linaro.org
</content>
</entry>
<entry>
<title>pmdomain: core: Add common -&gt;sync_state() support for genpd providers</title>
<updated>2025-07-09T11:29:41+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-07-01T11:47:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3b7b8acacf372945b4855a136634775c064a57f8'/>
<id>urn:sha1:3b7b8acacf372945b4855a136634775c064a57f8</id>
<content type='text'>
If the genpd provider's fwnode doesn't have an associated struct device
with it, we can make use of the generic genpd-&gt;dev and it corresponding
driver internally in genpd to manage -&gt;sync_state().

More precisely, while adding a genpd OF provider let's check if the fwnode
has a device and if not, make the preparation to handle -&gt;sync_state()
internally through the genpd_provider_driver and the genpd_provider_bus.

Note that, genpd providers may opt out from this behaviour by setting the
GENPD_FLAG_NO_SYNC_STATE config options for the genpds in question.

Suggested-by: Saravana Kannan &lt;saravanak@google.com&gt;
Tested-by: Hiago De Franco &lt;hiago.franco@toradex.com&gt; # Colibri iMX8X
Tested-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt; # TI AM62A,Xilinx ZynqMP ZCU106
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Link: https://lore.kernel.org/r/20250701114733.636510-19-ulf.hansson@linaro.org
</content>
</entry>
<entry>
<title>pmdomain: core: Export a common -&gt;sync_state() helper for genpd providers</title>
<updated>2025-07-09T11:28:57+00:00</updated>
<author>
<name>Ulf Hansson</name>
<email>ulf.hansson@linaro.org</email>
</author>
<published>2025-07-01T11:47:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6c3b746fd536b7612b23e5c2041365014b85082e'/>
<id>urn:sha1:6c3b746fd536b7612b23e5c2041365014b85082e</id>
<content type='text'>
In some cases the typical platform driver that act as genpd provider, may
need its own -&gt;sync_state() callback to manage various things. In this
regards, the provider most likely wants to allow its corresponding genpds
to be powered-off.

For this reason, let's introduce a new genpd helper function,
of_genpd_sync_state() that helps genpd provider drivers to achieve this.

Suggested-by: Saravana Kannan &lt;saravanak@google.com&gt;
Reviewed-by: Abel Vesa &lt;abel.vesa@linaro.org&gt;
Tested-by: Hiago De Franco &lt;hiago.franco@toradex.com&gt; # Colibri iMX8X
Tested-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt; # TI AM62A,Xilinx ZynqMP ZCU106
Signed-off-by: Ulf Hansson &lt;ulf.hansson@linaro.org&gt;
Link: https://lore.kernel.org/r/20250701114733.636510-8-ulf.hansson@linaro.org
</content>
</entry>
</feed>
