Re: [PATCH 0/9] driver core / pmdomain: Add support for fined grained sync_state
From: Ulf Hansson <hidden>
Date: 2026-03-19 16:59:54
Also in:
linux-pm, lkml
On Tue, 3 Mar 2026 at 14:23, Ulf Hansson [off-list ref] wrote:
Since the introduction [1] of the common sync_state support for pmdomains (genpd), we have encountered a lot of various interesting problems. In most cases the new behaviour of genpd triggered some weird platform specific bugs. That said, in LPC in Tokyo me and Saravana hosted a session to walk through the remaining limitations that we have found for genpd's sync state support. In particular, we discussed the problems we have for the so-called onecell power domain providers, where a single provider typically provides multiple independent power domains, all with their own set of consumers. In these cases, the generic sync_state mechanism with fw_devlink isn't fine grained enough, as we end up waiting for all consumers for all power domains before the ->sync_callback gets called for the supplier/provider. In other words, we may end up keeping unused power domains powered-on, for no good reasons. The series intends to fix this problem. Please have a look at the commit messages for more details. Please help review and test!
Saravana, Rafael, Greg - any concerns you see with this approach? Especially I need your confirmation for patch 1 and patch2. Kind regards Uffe
Kind regards Ulf Hansson [1] https://lore.kernel.org/all/20250701114733.636510-1-ulf.hansson@linaro.org/ (local) Ulf Hansson (9): driver core: Enable suppliers to implement fine grained sync_state support driver core: Add dev_set_drv_queue_sync_state() pmdomain: core: Move genpd_get_from_provider() pmdomain: core: Add initial fine grained sync_state support pmdomain: core: Extend fine grained sync_state to more onecell providers pmdomain: core: Export a common function for ->queue_sync_state() pmdomain: renesas: rcar-gen4-sysc: Drop GENPD_FLAG_NO_STAY_ON pmdomain: renesas: rcar-sysc: Drop GENPD_FLAG_NO_STAY_ON pmdomain: renesas: rmobile-sysc: Drop GENPD_FLAG_NO_STAY_ON drivers/base/core.c | 7 +- drivers/pmdomain/core.c | 208 ++++++++++++++++++---- drivers/pmdomain/renesas/rcar-gen4-sysc.c | 1 - drivers/pmdomain/renesas/rcar-sysc.c | 1 - drivers/pmdomain/renesas/rmobile-sysc.c | 3 +- include/linux/device.h | 12 ++ include/linux/device/driver.h | 7 + include/linux/pm_domain.h | 3 + 8 files changed, 200 insertions(+), 42 deletions(-) -- 2.43.0