aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5598-drm-amd-powerplay-bump-the-PPtable-version-supported.patch
diff options
context:
space:
mode:
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.patch104
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
+