tools/power/x86/intel-speed-select: Identify Emerald Rapids
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Thu, 23 Feb 2023 06:53:02 +0000 (22:53 -0800)
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 22 Mar 2023 20:41:17 +0000 (13:41 -0700)
There are some differences compared to Sapphire Rapids. So, add a separate
API.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
tools/power/x86/intel-speed-select/isst-config.c
tools/power/x86/intel-speed-select/isst-core-mbox.c
tools/power/x86/intel-speed-select/isst.h

index c4d00426cb6a5f1688408a22c6bc86913ff06e4d..2ad8726edc06b7963cbd6d68ee412d2faf724701 100644 (file)
@@ -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)
index 6951a9c31dc55c2deff026257a724b52976f7cb4..c860be30fe5ea11813ee43df2ad08f1d367d63b8 100644 (file)
@@ -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) {
index 6a37c26b1ef716cd3cbce8f43cda81d500d00d2c..54fc21575d56dc023602262f9330f2f4e22225b0 100644 (file)
@@ -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);