Commit 143584e8 authored by Zhang Rui's avatar Zhang Rui Committed by Srinivas Pandruvada

tools/power/x86/intel-speed-select: Abstract is_punit_valid

Allow platform specific implementation to identify a valid punit.

No functional changes are expected.
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
[srinivas.pandruvada@linux.intel.com: changelog edits]
Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
parent d0d1a603
...@@ -29,12 +29,22 @@ static char *mbox_get_trl_level_name(int level) ...@@ -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 = { static struct isst_platform_ops mbox_ops = {
.get_disp_freq_multiplier = mbox_get_disp_freq_multiplier, .get_disp_freq_multiplier = mbox_get_disp_freq_multiplier,
.get_trl_max_levels = mbox_get_trl_max_levels, .get_trl_max_levels = mbox_get_trl_max_levels,
.get_trl_level_name = mbox_get_trl_level_name, .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) struct isst_platform_ops *mbox_get_platform_ops(void)
......
...@@ -62,13 +62,8 @@ char *isst_get_trl_level_name(int level) ...@@ -62,13 +62,8 @@ char *isst_get_trl_level_name(int level)
int isst_is_punit_valid(struct isst_id *id) int isst_is_punit_valid(struct isst_id *id)
{ {
if (id->cpu < 0) CHECK_CB(is_punit_valid);
return 0; return isst_ops->is_punit_valid(id);
if (id->pkg < 0 || id->die < 0 || id->punit)
return 0;
return 1;
} }
static int isst_send_mmio_command(unsigned int cpu, unsigned int reg, int write, static int isst_send_mmio_command(unsigned int cpu, unsigned int reg, int write,
......
...@@ -185,6 +185,7 @@ struct isst_platform_ops { ...@@ -185,6 +185,7 @@ struct isst_platform_ops {
int (*get_disp_freq_multiplier)(void); int (*get_disp_freq_multiplier)(void);
int (*get_trl_max_levels)(void); int (*get_trl_max_levels)(void);
char *(*get_trl_level_name)(int level); 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); extern int is_cpu_in_power_domain(int cpu, struct isst_id *id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment