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

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

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