[PATCH/RFC 2/9] firmware: arm_scmi: Advertize always-on power domains

Geert Uytterhoeven geert+renesas at glider.be
Thu Jun 11 06:02:06 PDT 2026


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 <geert+renesas at glider.be>
---
 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




More information about the linux-arm-kernel mailing list