summaryrefslogtreecommitdiff
path: root/tools/power/x86/intel-speed-select
diff options
context:
space:
mode:
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2023-02-23 09:53:02 +0300
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2023-03-22 23:41:17 +0300
commit1d54b139f43482a5d394f26ce47aa9949dec6e76 (patch)
tree3ce95c1881f28fca34c1cc922be802ac36c9b2ed /tools/power/x86/intel-speed-select
parenta835ff56dd9ce2dfc53526085ba8efc2807b9bcb (diff)
downloadlinux-1d54b139f43482a5d394f26ce47aa9949dec6e76.tar.xz
tools/power/x86/intel-speed-select: Identify Emerald Rapids
There are some differences compared to Sapphire Rapids. So, add a separate API. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Diffstat (limited to 'tools/power/x86/intel-speed-select')
-rw-r--r--tools/power/x86/intel-speed-select/isst-config.c11
-rw-r--r--tools/power/x86/intel-speed-select/isst-core-mbox.c2
-rw-r--r--tools/power/x86/intel-speed-select/isst.h1
3 files changed, 12 insertions, 2 deletions
diff --git a/tools/power/x86/intel-speed-select/isst-config.c b/tools/power/x86/intel-speed-select/isst-config.c
index c4d00426cb6a..2ad8726edc06 100644
--- a/tools/power/x86/intel-speed-select/isst-config.c
+++ b/tools/power/x86/intel-speed-select/isst-config.c
@@ -114,12 +114,21 @@ int is_skx_based_platform(void)
int is_spr_platform(void)
{
- if (cpu_model == 0x8F || cpu_model == 0xCF)
+ if (cpu_model == 0x8F)
return 1;
return 0;
}
+int is_emr_platform(void)
+{
+ if (cpu_model == 0xCF)
+ return 1;
+
+ return 0;
+}
+
+
int is_icx_platform(void)
{
if (cpu_model == 0x6A || cpu_model == 0x6C)
diff --git a/tools/power/x86/intel-speed-select/isst-core-mbox.c b/tools/power/x86/intel-speed-select/isst-core-mbox.c
index 6951a9c31dc5..c860be30fe5e 100644
--- a/tools/power/x86/intel-speed-select/isst-core-mbox.c
+++ b/tools/power/x86/intel-speed-select/isst-core-mbox.c
@@ -404,7 +404,7 @@ static void _get_uncore_mem_freq(struct isst_id *id, int config_index,
}
ctdp_level->mem_freq = resp & GENMASK(7, 0);
- if (is_spr_platform()) {
+ if (is_spr_platform() || is_emr_platform()) {
ctdp_level->mem_freq *= 200;
} else if (is_icx_platform()) {
if (ctdp_level->mem_freq < 7) {
diff --git a/tools/power/x86/intel-speed-select/isst.h b/tools/power/x86/intel-speed-select/isst.h
index 6a37c26b1ef7..54fc21575d56 100644
--- a/tools/power/x86/intel-speed-select/isst.h
+++ b/tools/power/x86/intel-speed-select/isst.h
@@ -298,6 +298,7 @@ extern int isst_read_pm_config(struct isst_id *id, int *cp_state, int *cp_cap);
extern void isst_display_error_info_message(int error, char *msg, int arg_valid, int arg);
extern int is_skx_based_platform(void);
extern int is_spr_platform(void);
+extern int is_emr_platform(void);
extern int is_icx_platform(void);
extern void isst_trl_display_information(struct isst_id *id, FILE *outf, unsigned long long trl);