aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3971-drm-amd-powerplay-Enable-ACG-SS-feature.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3971-drm-amd-powerplay-Enable-ACG-SS-feature.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3971-drm-amd-powerplay-Enable-ACG-SS-feature.patch176
1 files changed, 176 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3971-drm-amd-powerplay-Enable-ACG-SS-feature.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3971-drm-amd-powerplay-Enable-ACG-SS-feature.patch
new file mode 100644
index 00000000..05bb0ad2
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3971-drm-amd-powerplay-Enable-ACG-SS-feature.patch
@@ -0,0 +1,176 @@
+From 81b2b981c74371f0152f389f1ac3a80f23f10a60 Mon Sep 17 00:00:00 2001
+From: Kenneth Feng <kenneth.feng@amd.com>
+Date: Wed, 28 Mar 2018 17:58:03 +0800
+Subject: [PATCH 3971/4131] drm/amd/powerplay: Enable ACG SS feature
+
+Port the atomfirmware.h and populates the
+updated pptable to SMU.With the new parameters
+in the new pptable, the ACG SS feature is enabled.
+
+Change-Id: Id690f9669d8018338d4d9287336621e4ab2dd1f0
+Signed-off-by: Kenneth Feng <kenneth.feng@amd.com>
+Reviewed-by: Evan Quan <evan.quan@amd.com>
+---
+ drivers/gpu/drm/amd/include/atomfirmware.h | 12 ++++++++----
+ drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c | 10 +++++++---
+ drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h | 10 +++++++---
+ .../gpu/drm/amd/powerplay/hwmgr/vega12_processpptables.c | 11 ++++++++---
+ drivers/gpu/drm/amd/powerplay/inc/vega12/smu9_driver_if.h | 14 +++++++++-----
+ 5 files changed, 39 insertions(+), 18 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/include/atomfirmware.h b/drivers/gpu/drm/amd/include/atomfirmware.h
+index 3ae3da4..0f5ad54 100644
+--- a/drivers/gpu/drm/amd/include/atomfirmware.h
++++ b/drivers/gpu/drm/amd/include/atomfirmware.h
+@@ -1264,9 +1264,9 @@ struct atom_smc_dpm_info_v4_1
+ uint8_t ledpin2;
+ uint8_t padding8_4;
+
+- uint8_t gfxclkspreadenabled;
+- uint8_t gfxclkspreadpercent;
+- uint16_t gfxclkspreadfreq;
++ uint8_t pllgfxclkspreadenabled;
++ uint8_t pllgfxclkspreadpercent;
++ uint16_t pllgfxclkspreadfreq;
+
+ uint8_t uclkspreadenabled;
+ uint8_t uclkspreadpercent;
+@@ -1276,7 +1276,11 @@ struct atom_smc_dpm_info_v4_1
+ uint8_t socclkspreadpercent;
+ uint16_t socclkspreadfreq;
+
+- uint32_t boardreserved[3];
++ uint8_t acggfxclkspreadenabled;
++ uint8_t acggfxclkspreadpercent;
++ uint16_t acggfxclkspreadfreq;
++
++ uint32_t boardreserved[10];
+ };
+
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
+index 5fa84cc..8aea88a 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
+@@ -618,9 +618,9 @@ int pp_atomfwctrl_get_smc_dpm_information(struct pp_hwmgr *hwmgr,
+ param->ledpin1 = info->ledpin1;
+ param->ledpin2 = info->ledpin2;
+
+- param->gfxclkspreadenabled = info->gfxclkspreadenabled;
+- param->gfxclkspreadpercent = info->gfxclkspreadpercent;
+- param->gfxclkspreadfreq = info->gfxclkspreadfreq;
++ param->pllgfxclkspreadenabled = info->pllgfxclkspreadenabled;
++ param->pllgfxclkspreadpercent = info->pllgfxclkspreadpercent;
++ param->pllgfxclkspreadfreq = info->pllgfxclkspreadfreq;
+
+ param->uclkspreadenabled = info->uclkspreadenabled;
+ param->uclkspreadpercent = info->uclkspreadpercent;
+@@ -630,5 +630,9 @@ int pp_atomfwctrl_get_smc_dpm_information(struct pp_hwmgr *hwmgr,
+ param->socclkspreadpercent = info->socclkspreadpercent;
+ param->socclkspreadfreq = info->socclkspreadfreq;
+
++ param->acggfxclkspreadenabled = info->acggfxclkspreadenabled;
++ param->acggfxclkspreadpercent = info->acggfxclkspreadpercent;
++ param->acggfxclkspreadfreq = info->acggfxclkspreadfreq;
++
+ return 0;
+ }
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h
+index a957d8f..8df1e84f 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.h
+@@ -192,9 +192,9 @@ struct pp_atomfwctrl_smc_dpm_parameters
+ uint8_t ledpin1;
+ uint8_t ledpin2;
+
+- uint8_t gfxclkspreadenabled;
+- uint8_t gfxclkspreadpercent;
+- uint16_t gfxclkspreadfreq;
++ uint8_t pllgfxclkspreadenabled;
++ uint8_t pllgfxclkspreadpercent;
++ uint16_t pllgfxclkspreadfreq;
+
+ uint8_t uclkspreadenabled;
+ uint8_t uclkspreadpercent;
+@@ -203,6 +203,10 @@ struct pp_atomfwctrl_smc_dpm_parameters
+ uint8_t socclkspreadenabled;
+ uint8_t socclkspreadpercent;
+ uint16_t socclkspreadfreq;
++
++ uint8_t acggfxclkspreadenabled;
++ uint8_t acggfxclkspreadpercent;
++ uint16_t acggfxclkspreadfreq;
+ };
+
+ int pp_atomfwctrl_get_gpu_pll_dividers_vega10(struct pp_hwmgr *hwmgr,
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_processpptables.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_processpptables.c
+index 928bb8f..7fa1ba8 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_processpptables.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega12_processpptables.c
+@@ -208,9 +208,9 @@ static int append_vbios_pptable(struct pp_hwmgr *hwmgr, PPTable_t *ppsmc_pptable
+ ppsmc_pptable->LedPin1 = smc_dpm_table.ledpin1;
+ ppsmc_pptable->LedPin2 = smc_dpm_table.ledpin2;
+
+- ppsmc_pptable->GfxclkSpreadEnabled = smc_dpm_table.gfxclkspreadenabled;
+- ppsmc_pptable->GfxclkSpreadPercent = smc_dpm_table.gfxclkspreadpercent;
+- ppsmc_pptable->GfxclkSpreadFreq = smc_dpm_table.gfxclkspreadfreq;
++ ppsmc_pptable->PllGfxclkSpreadEnabled = smc_dpm_table.pllgfxclkspreadenabled;
++ ppsmc_pptable->PllGfxclkSpreadPercent = smc_dpm_table.pllgfxclkspreadpercent;
++ ppsmc_pptable->PllGfxclkSpreadFreq = smc_dpm_table.pllgfxclkspreadfreq;
+
+ ppsmc_pptable->UclkSpreadEnabled = 0;
+ ppsmc_pptable->UclkSpreadPercent = smc_dpm_table.uclkspreadpercent;
+@@ -220,6 +220,11 @@ static int append_vbios_pptable(struct pp_hwmgr *hwmgr, PPTable_t *ppsmc_pptable
+ ppsmc_pptable->SocclkSpreadPercent = smc_dpm_table.socclkspreadpercent;
+ ppsmc_pptable->SocclkSpreadFreq = smc_dpm_table.socclkspreadfreq;
+
++ ppsmc_pptable->AcgGfxclkSpreadEnabled = smc_dpm_table.acggfxclkspreadenabled;
++ ppsmc_pptable->AcgGfxclkSpreadPercent = smc_dpm_table.acggfxclkspreadpercent;
++ ppsmc_pptable->AcgGfxclkSpreadFreq = smc_dpm_table.acggfxclkspreadfreq;
++
++
+ return 0;
+ }
+
+diff --git a/drivers/gpu/drm/amd/powerplay/inc/vega12/smu9_driver_if.h b/drivers/gpu/drm/amd/powerplay/inc/vega12/smu9_driver_if.h
+index cd2e503..fb696e3 100644
+--- a/drivers/gpu/drm/amd/powerplay/inc/vega12/smu9_driver_if.h
++++ b/drivers/gpu/drm/amd/powerplay/inc/vega12/smu9_driver_if.h
+@@ -127,7 +127,7 @@
+ #define FEATURE_GFX_EDC_MASK (1 << FEATURE_GFX_EDC_BIT )
+ #define FEATURE_GFXOFF_MASK (1 << FEATURE_GFXOFF_BIT )
+ #define FEATURE_CG_MASK (1 << FEATURE_CG_BIT )
+-#define FEATURE_ACG_MASK (1 << FEATURE_ACG_BIT )
++#define FEATURE_ACG_MASK (1 << FEATURE_ACG_BIT)
+ #define FEATURE_SPARE_29_MASK (1 << FEATURE_SPARE_29_BIT )
+ #define FEATURE_SPARE_30_MASK (1 << FEATURE_SPARE_30_BIT )
+ #define FEATURE_SPARE_31_MASK (1 << FEATURE_SPARE_31_BIT )
+@@ -481,9 +481,9 @@ typedef struct {
+ uint8_t padding8_4;
+
+
+- uint8_t GfxclkSpreadEnabled;
+- uint8_t GfxclkSpreadPercent;
+- uint16_t GfxclkSpreadFreq;
++ uint8_t PllGfxclkSpreadEnabled;
++ uint8_t PllGfxclkSpreadPercent;
++ uint16_t PllGfxclkSpreadFreq;
+
+ uint8_t UclkSpreadEnabled;
+ uint8_t UclkSpreadPercent;
+@@ -493,7 +493,11 @@ typedef struct {
+ uint8_t SocclkSpreadPercent;
+ uint16_t SocclkSpreadFreq;
+
+- uint32_t BoardReserved[3];
++ uint8_t AcgGfxclkSpreadEnabled;
++ uint8_t AcgGfxclkSpreadPercent;
++ uint16_t AcgGfxclkSpreadFreq;
++
++ uint32_t BoardReserved[10];
+
+
+ uint32_t MmHubPadding[7];
+--
+2.7.4
+