tools/power/x86/intel-speed-select: Abstract is_punit_valid
authorZhang Rui <rui.zhang@intel.com>
Sat, 20 Aug 2022 11:39:52 +0000 (19:39 +0800)
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 22 Mar 2023 20:36:49 +0000 (13:36 -0700)
Allow platform specific implementation to identify a valid punit.

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>
tools/power/x86/intel-speed-select/isst-core-mbox.c
tools/power/x86/intel-speed-select/isst-core.c
tools/power/x86/intel-speed-select/isst.h

index 221caa3..0d14286 100644 (file)
@@ -29,12 +29,22 @@ static char *mbox_get_trl_level_name(int level)
         }
 }
 
+static int mbox_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;
+}
 
 static struct isst_platform_ops mbox_ops = {
        .get_disp_freq_multiplier = mbox_get_disp_freq_multiplier,
        .get_trl_max_levels = mbox_get_trl_max_levels,
        .get_trl_level_name = mbox_get_trl_level_name,
+       .is_punit_valid = mbox_is_punit_valid,
 };
 
 struct isst_platform_ops *mbox_get_platform_ops(void)
index bf7b667..714ecd7 100644 (file)
@@ -62,13 +62,8 @@ 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;
+       CHECK_CB(is_punit_valid);
+       return isst_ops->is_punit_valid(id);
 }
 
 static int isst_send_mmio_command(unsigned int cpu, unsigned int reg, int write,
index 7bb74d0..ce3638c 100644 (file)
@@ -185,6 +185,7 @@ struct isst_platform_ops {
        int (*get_disp_freq_multiplier)(void);
        int (*get_trl_max_levels)(void);
        char *(*get_trl_level_name)(int level);
+       int (*is_punit_valid)(struct isst_id *id);
 };
 
 extern int is_cpu_in_power_domain(int cpu, struct isst_id *id);