Signed-off-by: Huang Rui <ray.huang@amd.com>
Acked-by: Hawking Zhang <Hawking.Zhang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
 static int smu10_init_power_gate_state(struct pp_hwmgr *hwmgr)
 {
        struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
+       struct amdgpu_device *adev = hwmgr->adev;
 
        smu10_data->vcn_power_gated = true;
        smu10_data->isp_tileA_power_gated = true;
        smu10_data->isp_tileB_power_gated = true;
 
-       return 0;
+       if (adev->pg_flags & AMD_PG_SUPPORT_GFX_PG)
+               return smum_send_msg_to_smc_with_parameter(hwmgr,
+                                                          PPSMC_MSG_SetGfxCGPG,
+                                                          true);
+       else
+               return 0;
 }
 
 
 
 #define PPSMC_MSG_GetMinGfxclkFrequency         0x2C
 #define PPSMC_MSG_GetMaxGfxclkFrequency         0x2D
 #define PPSMC_MSG_SoftReset                     0x2E
+#define PPSMC_MSG_SetGfxCGPG                   0x2F
 #define PPSMC_MSG_SetSoftMaxGfxClk              0x30
 #define PPSMC_MSG_SetHardMinGfxClk              0x31
 #define PPSMC_MSG_SetSoftMaxSocclkByFreq        0x32