bool                    use_ctx_buf;
        struct amd_sched_entity entity;
        uint32_t                srbm_soft_reset;
-       bool                    is_powergated;
 };
 
 /*
        struct amd_sched_entity entity;
        uint32_t                srbm_soft_reset;
        unsigned                num_rings;
-       bool                    is_powergated;
 };
 
 /*
 
        if (state == AMD_PG_STATE_GATE) {
                uvd_v4_2_stop(adev);
                if (adev->pg_flags & AMD_PG_SUPPORT_UVD && amdgpu_dpm == 0) {
-                       if (!(RREG32_SMC(ixCURRENT_PG_STATUS) & 0x4)) {
+                       if (!(RREG32_SMC(ixCURRENT_PG_STATUS) &
+                               CURRENT_PG_STATUS__UVD_PG_STATUS_MASK)) {
                                WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK   |
                                                        UVD_PGFSM_CONFIG__UVD_PGFSM_POWER_DOWN_MASK |
                                                        UVD_PGFSM_CONFIG__UVD_PGFSM_P1_SELECT_MASK));
                return 0;
        } else {
                if (adev->pg_flags & AMD_PG_SUPPORT_UVD && amdgpu_dpm == 0) {
-                       if (RREG32_SMC(ixCURRENT_PG_STATUS) & 0x4) {
+                       if (RREG32_SMC(ixCURRENT_PG_STATUS) &
+                               CURRENT_PG_STATUS__UVD_PG_STATUS_MASK) {
                                WREG32(mmUVD_PGFSM_CONFIG, (UVD_PGFSM_CONFIG__UVD_PGFSM_FSM_ADDR_MASK   |
                                                UVD_PGFSM_CONFIG__UVD_PGFSM_POWER_UP_MASK |
                                                UVD_PGFSM_CONFIG__UVD_PGFSM_P1_SELECT_MASK));
 
 
        if (state == AMD_PG_STATE_GATE) {
                uvd_v5_0_stop(adev);
-               adev->uvd.is_powergated = true;
        } else {
                ret = uvd_v5_0_start(adev);
                if (ret)
                        goto out;
-               adev->uvd.is_powergated = false;
        }
 
 out:
 
        mutex_lock(&adev->pm.mutex);
 
-       if (adev->uvd.is_powergated) {
+       if (RREG32_SMC(ixCURRENT_PG_STATUS) &
+                               CURRENT_PG_STATUS__UVD_PG_STATUS_MASK) {
                DRM_INFO("Cannot get clockgating state when UVD is powergated.\n");
                goto out;
        }
 
 
        if (state == AMD_PG_STATE_GATE) {
                uvd_v6_0_stop(adev);
-               adev->uvd.is_powergated = true;
        } else {
                ret = uvd_v6_0_start(adev);
                if (ret)
                        goto out;
-               adev->uvd.is_powergated = false;
        }
 
 out:
 
        mutex_lock(&adev->pm.mutex);
 
-       if (adev->uvd.is_powergated) {
+       if (RREG32_SMC(ixCURRENT_PG_STATUS) &
+                               CURRENT_PG_STATUS__UVD_PG_STATUS_MASK) {
                DRM_INFO("Cannot get clockgating state when UVD is powergated.\n");
                goto out;
        }
 
                ret = vce_v3_0_stop(adev);
                if (ret)
                        goto out;
-               adev->vce.is_powergated = true;
        } else {
                ret = vce_v3_0_start(adev);
                if (ret)
                        goto out;
-               adev->vce.is_powergated = false;
        }
 
 out:
 
        mutex_lock(&adev->pm.mutex);
 
-       if (adev->vce.is_powergated) {
+       if (RREG32_SMC(ixCURRENT_PG_STATUS) &
+                       CURRENT_PG_STATUS__VCE_PG_STATUS_MASK) {
                DRM_INFO("Cannot get clockgating state when VCE is powergated.\n");
                goto out;
        }
 
 #define ROM_SW_DATA_63__ROM_SW_DATA__SHIFT 0x0
 #define ROM_SW_DATA_64__ROM_SW_DATA_MASK 0xffffffff
 #define ROM_SW_DATA_64__ROM_SW_DATA__SHIFT 0x0
+#define CURRENT_PG_STATUS__VCE_PG_STATUS_MASK 0x00000002
+#define CURRENT_PG_STATUS__UVD_PG_STATUS_MASK 0x00000004
 
 #endif /* SMU_7_0_1_SH_MASK_H */
 
 #define ixROM_SW_DATA_62                                                        0xc060011c
 #define ixROM_SW_DATA_63                                                        0xc0600120
 #define ixROM_SW_DATA_64                                                        0xc0600124
+#define ixCURRENT_PG_STATUS                                                     0xc020029c
 
 #endif /* SMU_7_1_1_D_H */
 
 #define ROM_SW_DATA_63__ROM_SW_DATA__SHIFT 0x0
 #define ROM_SW_DATA_64__ROM_SW_DATA_MASK 0xffffffff
 #define ROM_SW_DATA_64__ROM_SW_DATA__SHIFT 0x0
+#define CURRENT_PG_STATUS__VCE_PG_STATUS_MASK 0x00000002
+#define CURRENT_PG_STATUS__UVD_PG_STATUS_MASK 0x00000004
 
 #endif /* SMU_7_1_1_SH_MASK_H */
 
 #define ixROM_SW_DATA_62                                                        0xc060011c
 #define ixROM_SW_DATA_63                                                        0xc0600120
 #define ixROM_SW_DATA_64                                                        0xc0600124
+#define ixCURRENT_PG_STATUS                                                     0xc020029c
 
 #endif /* SMU_7_1_2_D_H */
 
 #define ROM_SW_DATA_63__ROM_SW_DATA__SHIFT 0x0
 #define ROM_SW_DATA_64__ROM_SW_DATA_MASK 0xffffffff
 #define ROM_SW_DATA_64__ROM_SW_DATA__SHIFT 0x0
+#define CURRENT_PG_STATUS__VCE_PG_STATUS_MASK 0x00000002
+#define CURRENT_PG_STATUS__UVD_PG_STATUS_MASK 0x00000004
 
 #endif /* SMU_7_1_2_SH_MASK_H */
 
 #define ixGC_CAC_ACC_CU14                                                       0xc8
 #define ixGC_CAC_ACC_CU15                                                       0xc9
 #define ixGC_CAC_OVRD_CU                                                        0xe7
-
+#define ixCURRENT_PG_STATUS                                                     0xc020029c
 #endif /* SMU_7_1_3_D_H */
 
 #define GC_CAC_OVRD_CU__OVRRD_SELECT__SHIFT 0x0
 #define GC_CAC_OVRD_CU__OVRRD_VALUE_MASK 0xffff0000
 #define GC_CAC_OVRD_CU__OVRRD_VALUE__SHIFT 0x10
+#define CURRENT_PG_STATUS__VCE_PG_STATUS_MASK 0x00000002
+#define CURRENT_PG_STATUS__UVD_PG_STATUS_MASK 0x00000004
+
 
 #endif /* SMU_7_1_3_SH_MASK_H */