Signed-off-by: Huang Rui <ray.hu...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/vi.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
index 2523f31..88e3fd7 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -1243,6 +1243,32 @@ static int vi_common_set_powergating_state(void *handle,
        return 0;
 }
 
+static void vi_common_clockgating_state(void *handle, u32 *flags)
+{
+       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       int data;
+
+       /* AMD_CG_SUPPORT_BIF_LS */
+       data = RREG32_PCIE(ixPCIE_CNTL2);
+       if (data & PCIE_CNTL2__SLV_MEM_LS_EN_MASK)
+               *flags |= AMD_CG_SUPPORT_BIF_LS;
+
+       /* AMD_CG_SUPPORT_HDP_LS */
+       data = RREG32(mmHDP_MEM_POWER_LS);
+       if (data & HDP_MEM_POWER_LS__LS_ENABLE_MASK)
+               *flags |= AMD_CG_SUPPORT_HDP_LS;
+
+       /* AMD_CG_SUPPORT_HDP_MGCG */
+       data = RREG32(mmHDP_HOST_PATH_CNTL);
+       if (!(data & HDP_HOST_PATH_CNTL__CLOCK_GATING_DIS_MASK))
+               *flags |= AMD_CG_SUPPORT_HDP_MGCG;
+
+       /* AMD_CG_SUPPORT_ROM_MGCG */
+       data = RREG32_SMC(ixCGTT_ROM_CLK_CTRL0);
+       if (!(data & CGTT_ROM_CLK_CTRL0__SOFT_OVERRIDE0_MASK))
+               *flags |= AMD_CG_SUPPORT_ROM_MGCG;
+}
+
 static const struct amd_ip_funcs vi_common_ip_funcs = {
        .name = "vi_common",
        .early_init = vi_common_early_init,
@@ -1258,6 +1284,7 @@ static const struct amd_ip_funcs vi_common_ip_funcs = {
        .soft_reset = vi_common_soft_reset,
        .set_clockgating_state = vi_common_set_clockgating_state,
        .set_powergating_state = vi_common_set_powergating_state,
+       .clockgating_state = vi_common_clockgating_state,
 };
 
 static const struct amdgpu_ip_block_version vi_common_ip_block =
-- 
2.7.4

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

Reply via email to