summaryrefslogtreecommitdiff
path: root/tools/power
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2022-08-17 10:33:23 +0300
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2023-03-22 23:36:49 +0300
commit57ef2436a1759ae9d9b4d1536aed4701bfb4f737 (patch)
tree8a9c86e861be14f2a78e8a91ea595f451b3d7d8a /tools/power
parente157c8475e7c2d62d7b28983ea81167f3e6a5a57 (diff)
downloadlinux-57ef2436a1759ae9d9b4d1536aed4701bfb4f737.tar.xz
tools/power/x86/intel-speed-select: Introduce isst_is_punit_valid()
Introduce isst_is_punit_valid() for checking a valid domain. For current platforms, it requires a punit 0 in a valid Package/Die. No functional changes are expected. Signed-off-by: Zhang Rui <rui.zhang@intel.com> [srinivas.pandruvada@linux.intel.com: changelog edits] Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Diffstat (limited to 'tools/power')
-rw-r--r--tools/power/x86/intel-speed-select/isst-core.c11
-rw-r--r--tools/power/x86/intel-speed-select/isst.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/tools/power/x86/intel-speed-select/isst-core.c b/tools/power/x86/intel-speed-select/isst-core.c
index 8aa2ee4bb232..f712da2b5146 100644
--- a/tools/power/x86/intel-speed-select/isst-core.c
+++ b/tools/power/x86/intel-speed-select/isst-core.c
@@ -25,6 +25,17 @@ char *isst_get_trl_level_name(int level)
}
}
+int isst_is_punit_valid(struct isst_id *id)
+{
+ if (id->cpu < 0)
+ return 0;
+
+ if (id->pkg < 0 || id->die < 0 || id->punit)
+ return 0;
+
+ return 1;
+}
+
int isst_write_pm_config(struct isst_id *id, int cp_state)
{
unsigned int req, resp;
diff --git a/tools/power/x86/intel-speed-select/isst.h b/tools/power/x86/intel-speed-select/isst.h
index 148389c5ab84..ef884d83d388 100644
--- a/tools/power/x86/intel-speed-select/isst.h
+++ b/tools/power/x86/intel-speed-select/isst.h
@@ -205,6 +205,7 @@ extern int isst_send_msr_command(unsigned int cpu, unsigned int command,
extern int isst_get_trl_max_levels(void);
extern char *isst_get_trl_level_name(int level);
+extern int isst_is_punit_valid(struct isst_id *id);
extern int isst_get_ctdp_levels(struct isst_id *id, struct isst_pkg_ctdp *pkg_dev);
extern int isst_get_ctdp_control(struct isst_id *id, int config_index,