drm/amd/powerplay: add interface to get clock by type with voltage for display
This patch adds inteface to get clock by type with voltage, display will use it to get current clocks with voltage. Signed-off-by: Huang Rui <ray.huang@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
e5e4e22391
commit
1e33d4d439
@ -422,14 +422,20 @@ bool dm_pp_get_clock_levels_by_type_with_voltage(
|
||||
void *pp_handle = adev->powerplay.pp_handle;
|
||||
struct pp_clock_levels_with_voltage pp_clk_info = {0};
|
||||
const struct amd_pm_funcs *pp_funcs = adev->powerplay.pp_funcs;
|
||||
int ret;
|
||||
|
||||
if (!pp_funcs || !pp_funcs->get_clock_by_type_with_voltage)
|
||||
return false;
|
||||
|
||||
if (pp_funcs->get_clock_by_type_with_voltage(pp_handle,
|
||||
dc_to_pp_clock_type(clk_type),
|
||||
&pp_clk_info))
|
||||
return false;
|
||||
if (pp_funcs && pp_funcs->get_clock_by_type_with_voltage) {
|
||||
ret = pp_funcs->get_clock_by_type_with_voltage(pp_handle,
|
||||
dc_to_pp_clock_type(clk_type),
|
||||
&pp_clk_info);
|
||||
if (ret)
|
||||
return false;
|
||||
} else if (adev->smu.ppt_funcs && adev->smu.ppt_funcs->get_clock_by_type_with_voltage) {
|
||||
if (smu_get_clock_by_type_with_voltage(&adev->smu,
|
||||
dc_to_pp_clock_type(clk_type),
|
||||
&pp_clk_info))
|
||||
return false;
|
||||
}
|
||||
|
||||
pp_to_dc_clock_levels_with_voltage(&pp_clk_info, clk_level_info, clk_type);
|
||||
|
||||
|
@ -229,6 +229,11 @@ struct pptable_funcs {
|
||||
struct
|
||||
pp_clock_levels_with_latency
|
||||
*clocks);
|
||||
int (*get_clock_by_type_with_voltage)(struct smu_context *smu,
|
||||
enum amd_pp_clock_type type,
|
||||
struct
|
||||
pp_clock_levels_with_voltage
|
||||
*clocks);
|
||||
};
|
||||
|
||||
struct smu_funcs
|
||||
@ -386,6 +391,8 @@ struct smu_funcs
|
||||
((smu)->funcs->get_max_high_clocks ? (smu)->funcs->get_max_high_clocks((smu), (clocks)) : 0)
|
||||
#define smu_get_clock_by_type_with_latency(smu, type, clocks) \
|
||||
((smu)->ppt_funcs->get_clock_by_type_with_latency ? (smu)->ppt_funcs->get_clock_by_type_with_latency((smu), (type), (clocks)) : 0)
|
||||
#define smu_get_clock_by_type_with_voltage(smu, type, clocks) \
|
||||
((smu)->ppt_funcs->get_clock_by_type_with_voltage ? (smu)->ppt_funcs->get_clock_by_type_with_voltage((smu), (type), (clocks)) : 0)
|
||||
|
||||
|
||||
extern int smu_get_atom_data_table(struct smu_context *smu, uint32_t table,
|
||||
|
Loading…
x
Reference in New Issue
Block a user