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: Zhang Rui <rui.zhang@intel.com>
[srinivas.pandruvada@linux.intel.com: changelog edits]
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
This commit is contained in:
Zhang Rui 2022-08-20 19:39:52 +08:00 committed by Srinivas Pandruvada
parent d0d1a603c5
commit 143584e848
3 changed files with 13 additions and 7 deletions

View 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 = { 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)

View File

@ -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,

View File

@ -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);