mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
drm/amd/powerplay: bump the PPtable version supported
As the matching VBIOS is already ready. Also drop the temporary workarounds applied before. Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Feifei Xu <Feifei.Xu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b44ec6a3eb
commit
3b2ad16dc4
2 changed files with 18 additions and 30 deletions
|
@ -716,10 +716,6 @@ static int append_vbios_pptable(struct pp_hwmgr *hwmgr, PPTable_t *ppsmc_pptable
|
|||
"[appendVbiosPPTable] Failed to retrieve Smc Dpm Table from VBIOS!",
|
||||
return -1);
|
||||
|
||||
memset(ppsmc_pptable->Padding32,
|
||||
0,
|
||||
sizeof(struct atom_smc_dpm_info_v4_4) -
|
||||
sizeof(struct atom_common_table_header));
|
||||
ppsmc_pptable->MaxVoltageStepGfx = smc_dpm_table->maxvoltagestepgfx;
|
||||
ppsmc_pptable->MaxVoltageStepSoc = smc_dpm_table->maxvoltagestepsoc;
|
||||
|
||||
|
@ -778,22 +774,19 @@ static int append_vbios_pptable(struct pp_hwmgr *hwmgr, PPTable_t *ppsmc_pptable
|
|||
ppsmc_pptable->FllGfxclkSpreadPercent = smc_dpm_table->fllgfxclkspreadpercent;
|
||||
ppsmc_pptable->FllGfxclkSpreadFreq = smc_dpm_table->fllgfxclkspreadfreq;
|
||||
|
||||
if ((smc_dpm_table->table_header.format_revision == 4) &&
|
||||
(smc_dpm_table->table_header.content_revision == 4)) {
|
||||
for (i = 0; i < I2C_CONTROLLER_NAME_COUNT; i++) {
|
||||
ppsmc_pptable->I2cControllers[i].Enabled =
|
||||
smc_dpm_table->i2ccontrollers[i].enabled;
|
||||
ppsmc_pptable->I2cControllers[i].SlaveAddress =
|
||||
smc_dpm_table->i2ccontrollers[i].slaveaddress;
|
||||
ppsmc_pptable->I2cControllers[i].ControllerPort =
|
||||
smc_dpm_table->i2ccontrollers[i].controllerport;
|
||||
ppsmc_pptable->I2cControllers[i].ThermalThrottler =
|
||||
smc_dpm_table->i2ccontrollers[i].thermalthrottler;
|
||||
ppsmc_pptable->I2cControllers[i].I2cProtocol =
|
||||
smc_dpm_table->i2ccontrollers[i].i2cprotocol;
|
||||
ppsmc_pptable->I2cControllers[i].I2cSpeed =
|
||||
smc_dpm_table->i2ccontrollers[i].i2cspeed;
|
||||
}
|
||||
for (i = 0; i < I2C_CONTROLLER_NAME_COUNT; i++) {
|
||||
ppsmc_pptable->I2cControllers[i].Enabled =
|
||||
smc_dpm_table->i2ccontrollers[i].enabled;
|
||||
ppsmc_pptable->I2cControllers[i].SlaveAddress =
|
||||
smc_dpm_table->i2ccontrollers[i].slaveaddress;
|
||||
ppsmc_pptable->I2cControllers[i].ControllerPort =
|
||||
smc_dpm_table->i2ccontrollers[i].controllerport;
|
||||
ppsmc_pptable->I2cControllers[i].ThermalThrottler =
|
||||
smc_dpm_table->i2ccontrollers[i].thermalthrottler;
|
||||
ppsmc_pptable->I2cControllers[i].I2cProtocol =
|
||||
smc_dpm_table->i2ccontrollers[i].i2cprotocol;
|
||||
ppsmc_pptable->I2cControllers[i].I2cSpeed =
|
||||
smc_dpm_table->i2ccontrollers[i].i2cspeed;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -882,15 +875,10 @@ static int init_powerplay_table_information(
|
|||
if (pptable_information->smc_pptable == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
if (powerplay_table->smcPPTable.Version <= 2)
|
||||
memcpy(pptable_information->smc_pptable,
|
||||
&(powerplay_table->smcPPTable),
|
||||
sizeof(PPTable_t) -
|
||||
sizeof(I2cControllerConfig_t) * I2C_CONTROLLER_NAME_COUNT);
|
||||
else
|
||||
memcpy(pptable_information->smc_pptable,
|
||||
&(powerplay_table->smcPPTable),
|
||||
sizeof(PPTable_t));
|
||||
memcpy(pptable_information->smc_pptable,
|
||||
&(powerplay_table->smcPPTable),
|
||||
sizeof(PPTable_t));
|
||||
|
||||
|
||||
result = append_vbios_pptable(hwmgr, (pptable_information->smc_pptable));
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
// any structure is changed in this file
|
||||
#define SMU11_DRIVER_IF_VERSION 0x12
|
||||
|
||||
#define PPTABLE_V20_SMU_VERSION 2
|
||||
#define PPTABLE_V20_SMU_VERSION 3
|
||||
|
||||
#define NUM_GFXCLK_DPM_LEVELS 16
|
||||
#define NUM_VCLK_DPM_LEVELS 8
|
||||
|
|
Loading…
Reference in a new issue