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

From: Geert Uytterhoeven

Date: Thu Jun 11 2026 - 09:03:16 EST


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@xxxxxxxxx>
---
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