Change-Id: I0f98553985ddbda1473f5313ac803fb9a38ca43a
---
 drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 42 ++++++++++++++++++++++
 drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h |  1 +
 2 files changed, 43 insertions(+)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c 
b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index 278def7..c8689ce 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -2304,6 +2304,48 @@ static int vega10_avfs_enable(struct pp_hwmgr *hwmgr, 
bool enable)
        return 0;
 }
 
+static int vega10_populate_and_upload_avfs_fuse_override(struct pp_hwmgr 
*hwmgr)
+{
+       int result = 0;
+
+       /* Keep Commented until SMC is ready.*/
+  /*  ULONGLONG SerialNumber = 0;
+    ULONG TOP32, BOTTOM32;
+    PHM_FusesDefault Fuses;
+    PhwVega10_PrivateData *pPrivate = (PhwVega10_PrivateData 
*)(pHwMgr->pBackEndPrivateData);
+    AvfsFuseOverride_t * AVFSFuseTable = 
&(pPrivate->smcStateTable.AvfsFuseOverrideTable);
+
+    Vega10_SendMsgToSmc(pHwMgr->pSmuMgr, PPSMC_MSG_ReadSerialNumTop32);
+    Vega10_ReadArgFromSmc(pHwMgr->pSmuMgr, &TOP32);
+    
+    Vega10_SendMsgToSmc(pHwMgr->pSmuMgr, PPSMC_MSG_ReadSerialNumBottom32);
+    Vega10_ReadArgFromSmc(pHwMgr->pSmuMgr, &BOTTOM32);
+
+    SerialNumber = ((ULONGLONG)BOTTOM32 << 32)| TOP32;
+    
+    if (PP_Override_GetDefaultFuseValue(SerialNumber, PHM_Vega10FusesDefault, 
&Fuses) == PP_Result_OK)
+    {
+        AVFSFuseTable->VFT0_b  = Fuses.VFT0_b;
+        AVFSFuseTable->VFT0_m1 = Fuses.VFT0_m1;
+        AVFSFuseTable->VFT0_m2 = Fuses.VFT0_m2;
+        AVFSFuseTable->VFT1_b  = Fuses.VFT1_b;
+        AVFSFuseTable->VFT1_m1 = Fuses.VFT2_m1;
+        AVFSFuseTable->VFT1_m2 = Fuses.VFT1_m2;
+        AVFSFuseTable->VFT2_b  = Fuses.VFT2_b;
+        AVFSFuseTable->VFT2_m1 = Fuses.VFT2_m1;
+        AVFSFuseTable->VFT2_m2 = Fuses.VFT2_m2;
+
+        result = PhwVega10_SMCTableManager(pHwMgr, SMUTABLE_WRITE, 
AVFSFUSETABLE_BIT_MASK);
+        PP_ASSERT_WITH_CODE(pHwMgr->pPECI, PP_Result_OK == result, 
"[PhwVega10_PopulateAndUploadAVFSFuseOverride] Failed to update FuseOVerride!", 
return result;);
+    }
+    else
+    {
+        result = PP_Result_OK;
+    }
+*/
+       return result;
+}
+
 /**
 * Initializes the SMC table and uploads it
 *
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h 
b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h
index 83c67b9..6070896 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h
@@ -207,6 +207,7 @@ struct vega10_smc_state_table {
        PPTable_t       pp_table;
        Watermarks_t    water_marks_table;
        AvfsTable_t     avfs_table;
+       AvfsFuseOverride_t AvfsFuseOverrideTable;
 };
 
 struct vega10_mclk_latency_entries {
-- 
1.9.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to