Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf17039f authored by Eric Huang's avatar Eric Huang Committed by Alex Deucher
Browse files

drm/amd/powerplay: keep soft_pp_table pointer value for re-uploading



Necessary for updating pptables at runtime.

Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarEric Huang <JinHuiEric.Huang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 50ab2533
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -794,15 +794,18 @@ static const ATOM_PPLIB_STATE_V2 *get_state_entry_v2(
static const ATOM_PPLIB_POWERPLAYTABLE *get_powerplay_table(
				     struct pp_hwmgr *hwmgr)
{
	const void *table_addr = NULL;
	const void *table_addr = hwmgr->soft_pp_table;
	uint8_t frev, crev;
	uint16_t size;

	if (!table_addr) {
		table_addr = cgs_atom_get_data_table(hwmgr->device,
				GetIndexIntoMasterTable(DATA, PowerPlayInfo),
				&size, &frev, &crev);

		hwmgr->soft_pp_table = table_addr;
		hwmgr->soft_pp_table_size = size;
	}

	return (const ATOM_PPLIB_POWERPLAYTABLE *)table_addr;
}
@@ -1589,11 +1592,6 @@ static int pp_tables_initialize(struct pp_hwmgr *hwmgr)

static int pp_tables_uninitialize(struct pp_hwmgr *hwmgr)
{
	if (NULL != hwmgr->soft_pp_table) {
		kfree(hwmgr->soft_pp_table);
		hwmgr->soft_pp_table = NULL;
	}

	if (NULL != hwmgr->dyn_state.vddc_dependency_on_sclk) {
		kfree(hwmgr->dyn_state.vddc_dependency_on_sclk);
		hwmgr->dyn_state.vddc_dependency_on_sclk = NULL;
+0 −3
Original line number Diff line number Diff line
@@ -1077,9 +1077,6 @@ int tonga_pp_tables_uninitialize(struct pp_hwmgr *hwmgr)
	struct phm_ppt_v1_information *pp_table_information =
		(struct phm_ppt_v1_information *)(hwmgr->pptable);

	if (NULL != hwmgr->soft_pp_table)
		hwmgr->soft_pp_table = NULL;

	kfree(pp_table_information->vdd_dep_on_sclk);
	pp_table_information->vdd_dep_on_sclk = NULL;