drm/amd/display: Enable fast plane updates on DCN3.2 and above
authorjsg <jsg@openbsd.org>
Thu, 30 Nov 2023 03:04:27 +0000 (03:04 +0000)
committerjsg <jsg@openbsd.org>
Thu, 30 Nov 2023 03:04:27 +0000 (03:04 +0000)
From Tianci Yin
68d774eb10e261ac6d176da2379f97a62878ef22 in linux-6.1.y/6.1.64
435f5b369657cffee4b04db1f5805b48599f4dbe in mainline linux

sys/dev/pci/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 09815d3..2d67815 100644 (file)
@@ -9289,14 +9289,14 @@ static bool should_reset_plane(struct drm_atomic_state *state,
        struct drm_plane *other;
        struct drm_plane_state *old_other_state, *new_other_state;
        struct drm_crtc_state *new_crtc_state;
+       struct amdgpu_device *adev = drm_to_adev(plane->dev);
        int i;
 
        /*
-        * TODO: Remove this hack once the checks below are sufficient
-        * enough to determine when we need to reset all the planes on
-        * the stream.
+        * TODO: Remove this hack for all asics once it proves that the
+        * fast updates works fine on DCN3.2+.
         */
-       if (state->allow_modeset)
+       if (adev->ip_versions[DCE_HWIP][0] < IP_VERSION(3, 2, 0) && state->allow_modeset)
                return true;
 
        /* Exit early if we know that we're adding or removing the plane. */