diff options
author | Zhang Rui <rui.zhang@intel.com> | 2022-08-17 10:33:23 +0300 |
---|---|---|
committer | Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> | 2023-03-22 23:36:49 +0300 |
commit | 57ef2436a1759ae9d9b4d1536aed4701bfb4f737 (patch) | |
tree | 8a9c86e861be14f2a78e8a91ea595f451b3d7d8a /tools/power | |
parent | e157c8475e7c2d62d7b28983ea81167f3e6a5a57 (diff) | |
download | linux-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.c | 11 | ||||
-rw-r--r-- | tools/power/x86/intel-speed-select/isst.h | 1 |
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, |