[PATCH/RFC 2/9] firmware: arm_scmi: Advertize always-on power domains
Geert Uytterhoeven <[email protected]>
| Newsgroups | org.kernel.vger.arm-scmi,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm,org.kernel.vger.linux-renesas-soc |
|---|---|
| Message-ID | <1cbd6383dfef1eb397b52a4ff557f66b2064798d.1781171705.git.geert+renesas@glider.be> |
A power domains indicates in its attribute flags if it supports setting its power state synchronously and/or asynchronously. If none of them is supported, it must be an always-on power domain. Make this information available to SCMI protocol drivers, so they can make use of it. Signed-off-by: Geert Uytterhoeven <[email protected]> --- drivers/firmware/arm_scmi/power.c | 4 ++++ include/linux/scmi_protocol.h | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/firmware/arm_scmi/power.c b/drivers/firmware/arm_scmi/power.c index a00f7c298efb74f9..11ca8c9965110b5a 100644 --- a/drivers/firmware/arm_scmi/power.c +++ b/drivers/firmware/arm_scmi/power.c @@ -8,6 +8,7 @@ #define pr_fmt(fmt) "SCMI Notifications POWER - " fmt #include <linux/module.h> +#include <linux/pm_domain.h> #include <linux/scmi_protocol.h> #include "protocols.h" @@ -147,6 +148,9 @@ scmi_power_domain_attributes_get(const struct scmi_protocol_handle *ph, SCMI_MAX_STR_SIZE); } + if (!ret && !dom_info->state_set_async && !dom_info->state_set_sync) + dom_info->info.genpd_flags |= GENPD_FLAG_ALWAYS_ON; + return ret; } diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index 1c17515ba45d1fd4..1d55374bc8cdcc72 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -193,6 +193,7 @@ struct scmi_perf_proto_ops { struct scmi_power_domain_info { char name[SCMI_MAX_STR_SIZE]; + unsigned int genpd_flags; }; /** -- 2.43.0