/* It is disabled by HW by default */
        if (enable && (adev->cg_flags & AMD_CG_SUPPORT_GFX_MGCG)) {
+               /* 0 - Disable some blocks' MGCG */
+               WREG32_SOC15(GC, 0, mmGRBM_GFX_INDEX, 0xe0000000);
+               WREG32_SOC15(GC, 0, mmCGTT_WD_CLK_CTRL, 0xff000000);
+               WREG32_SOC15(GC, 0, mmCGTT_VGT_CLK_CTRL, 0xff000000);
+               WREG32_SOC15(GC, 0, mmCGTT_IA_CLK_CTRL, 0xff000000);
+
                /* 1 - RLC_CGTT_MGCG_OVERRIDE */
                def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
                data &= ~(RLC_CGTT_MGCG_OVERRIDE__GRBM_CGTT_SCLK_OVERRIDE_MASK |
                if (def != data)
                        WREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE, data);
 
-               /* 2 - disable MGLS in RLC */
+               /* 2 - disable MGLS in CP */
+               data = RREG32_SOC15(GC, 0, mmCP_MEM_SLP_CNTL);
+               if (data & CP_MEM_SLP_CNTL__CP_MEM_LS_EN_MASK) {
+                       data &= ~CP_MEM_SLP_CNTL__CP_MEM_LS_EN_MASK;
+                       WREG32_SOC15(GC, 0, mmCP_MEM_SLP_CNTL, data);
+               }
+
+               /* 3 - disable MGLS in RLC */
                data = RREG32_SOC15(GC, 0, mmRLC_MEM_SLP_CNTL);
                if (data & RLC_MEM_SLP_CNTL__RLC_MEM_LS_EN_MASK) {
                        data &= ~RLC_MEM_SLP_CNTL__RLC_MEM_LS_EN_MASK;
                        WREG32_SOC15(GC, 0, mmRLC_MEM_SLP_CNTL, data);
                }
 
-               /* 3 - disable MGLS in CP */
-               data = RREG32_SOC15(GC, 0, mmCP_MEM_SLP_CNTL);
-               if (data & CP_MEM_SLP_CNTL__CP_MEM_LS_EN_MASK) {
-                       data &= ~CP_MEM_SLP_CNTL__CP_MEM_LS_EN_MASK;
-                       WREG32_SOC15(GC, 0, mmCP_MEM_SLP_CNTL, data);
-               }
        }
 }
 
                /* ===  CGCG /CGLS for GFX 3D Only === */
                gfx_v10_0_update_3d_clock_gating(adev, enable);
                /* ===  MGCG + MGLS === */
-               gfx_v10_0_update_medium_grain_clock_gating(adev, enable);
+               /* gfx_v10_0_update_medium_grain_clock_gating(adev, enable); */
        }
 
        if (adev->cg_flags &