firmware: arm_scmi: Check beforehand if the perf domain set operations are allowed
authorxinglong.yang <xinglong.yang@cixtech.com>
Thu, 9 Nov 2023 08:28:55 +0000 (16:28 +0800)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 13 Nov 2023 14:30:37 +0000 (14:30 +0000)
commit189df98777a32c17d73e116df144e22b2ac3ae6b
tree54ec709c534712eacbad8d2bd656bcdca25b3fe8
parentb85ea95d086471afb4ad062012a4d73cd328fa86
firmware: arm_scmi: Check beforehand if the perf domain set operations are allowed

Certain SCMI performance domains may have restrictions on the set level
and/or limits operation. If the set level/limits are performed by an
agent who is not allowed to do so may get SCMI_ERR_SUPPORT. However,
since this information about the domain is already known to the
agent(OSPM here) obtained via PERF_DOMAIN_ATTRIBUTES, the agent(OSPM)
can avoid making PERF_LEVEL_SET and PERF_LIMITS_SET calls to the firmware.

Add those checks and return -ENOTSUPP to the caller without interacting
with the firmware based on the information collected during the domain
enumeration stage.

Signed-off-by: xinglong.yang <xinglong.yang@cixtech.com>
Link: https://lore.kernel.org/r/20231109082855.472681-1-xinglong.yang@cixtech.com
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/perf.c