diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5598-drm-amd-powerplay-bump-the-PPtable-version-supported.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5598-drm-amd-powerplay-bump-the-PPtable-version-supported.patch | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5598-drm-amd-powerplay-bump-the-PPtable-version-supported.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5598-drm-amd-powerplay-bump-the-PPtable-version-supported.patch new file mode 100644 index 00000000..0873cd45 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5598-drm-amd-powerplay-bump-the-PPtable-version-supported.patch @@ -0,0 +1,104 @@ +From 10d85908c382374b351d1cbb84f34aebd1dbef8e Mon Sep 17 00:00:00 2001 +From: Evan Quan <evan.quan@amd.com> +Date: Fri, 19 Oct 2018 15:41:20 +0800 +Subject: [PATCH 5598/5725] drm/amd/powerplay: bump the PPtable version + supported + +As the matching VBIOS is already ready. Also drop the +temporary workarounds applied before. + +Change-Id: If5b78298bc0817b06e11aba49d390fa341d714b4 +Signed-off-by: Evan Quan <evan.quan@amd.com> +Reviewed-by: Feifei Xu <Feifei.Xu@amd.com> +--- + .../amd/powerplay/hwmgr/vega20_processpptables.c | 46 ++++++++-------------- + .../gpu/drm/amd/powerplay/inc/smu11_driver_if.h | 2 +- + 2 files changed, 18 insertions(+), 30 deletions(-) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c +index e5f7f82..f7e8bbd 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c +@@ -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)); + +diff --git a/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h b/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h +index 2998a49..63d5cf6 100644 +--- a/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h ++++ b/drivers/gpu/drm/amd/powerplay/inc/smu11_driver_if.h +@@ -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 +-- +2.7.4 + |