if (adev->ip_blocks[i].type == AMD_IP_BLOCK_TYPE_UVD ||
                        adev->ip_blocks[i].type == AMD_IP_BLOCK_TYPE_VCE)
                        continue;
-               /* enable clockgating to save power */
-               r = adev->ip_blocks[i].funcs->set_clockgating_state((void *)adev,
-                                                                   AMD_CG_STATE_GATE);
-               if (r) {
-                       DRM_ERROR("set_clockgating_state(gate) of IP block <%s> failed %d\n", adev->ip_blocks[i].funcs->name, r);
-                       return r;
-               }
                if (adev->ip_blocks[i].funcs->late_init) {
                        r = adev->ip_blocks[i].funcs->late_init((void *)adev);
                        if (r) {
                        }
                        adev->ip_block_status[i].late_initialized = true;
                }
+               /* enable clockgating to save power */
+               r = adev->ip_blocks[i].funcs->set_clockgating_state((void *)adev,
+                                                                   AMD_CG_STATE_GATE);
+               if (r) {
+                       DRM_ERROR("set_clockgating_state(gate) of IP block <%s> failed %d\n", adev->ip_blocks[i].funcs->name, r);
+                       return r;
+               }
        }
 
        return 0;