On 10/2/23 10:16, Michel Dänzer wrote:
From: Michel Dänzer <mdaen...@redhat.com>

Cleanup, no functional change intended.

Signed-off-by: Michel Dänzer <mdaen...@redhat.com>

Seems like this series does indeed fix the issue, so I have applied it
instead of the revert.

---
  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 +++++++++++--------
  1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 19aeb1aa1276..0173828e1f61 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -9892,6 +9892,17 @@ static void dm_get_oriented_plane_size(struct 
drm_plane_state *plane_state,
        }
  }
+static void
+dm_get_plane_scale(struct drm_plane_state *plane_state,
+                  int *out_plane_scale_w, int *out_plane_scale_h)
+{
+       int plane_src_w, plane_src_h;
+
+       dm_get_oriented_plane_size(plane_state, &plane_src_w, &plane_src_h);
+       *out_plane_scale_w = plane_state->crtc_w * 1000 / plane_src_w;
+       *out_plane_scale_h = plane_state->crtc_h * 1000 / plane_src_h;
+}
+
  static int dm_check_crtc_cursor(struct drm_atomic_state *state,
                                struct drm_crtc *crtc,
                                struct drm_crtc_state *new_crtc_state)
@@ -9900,8 +9911,6 @@ static int dm_check_crtc_cursor(struct drm_atomic_state 
*state,
        struct drm_plane_state *new_cursor_state, *new_underlying_state;
        int i;
        int cursor_scale_w, cursor_scale_h, underlying_scale_w, 
underlying_scale_h;
-       int cursor_src_w, cursor_src_h;
-       int underlying_src_w, underlying_src_h;
/* On DCE and DCN there is no dedicated hardware cursor plane. We get a
         * cursor per pipe but it's going to inherit the scaling and
@@ -9916,9 +9925,7 @@ static int dm_check_crtc_cursor(struct drm_atomic_state 
*state,
        if (!new_cursor_state->fb)
                return 0;
- dm_get_oriented_plane_size(new_cursor_state, &cursor_src_w, &cursor_src_h);
-       cursor_scale_w = new_cursor_state->crtc_w * 1000 / cursor_src_w;
-       cursor_scale_h = new_cursor_state->crtc_h * 1000 / cursor_src_h;
+       dm_get_plane_scale(new_cursor_state, &cursor_scale_w, &cursor_scale_h);
/* Need to check all enabled planes, even if this commit doesn't change
         * their state
@@ -9936,10 +9943,8 @@ static int dm_check_crtc_cursor(struct drm_atomic_state 
*state,
                if (!new_underlying_state->fb)
                        continue;
- dm_get_oriented_plane_size(new_underlying_state,
-                                          &underlying_src_w, 
&underlying_src_h);
-               underlying_scale_w = new_underlying_state->crtc_w * 1000 / 
underlying_src_w;
-               underlying_scale_h = new_underlying_state->crtc_h * 1000 / 
underlying_src_h;
+               dm_get_plane_scale(new_underlying_state,
+                                  &underlying_scale_w, &underlying_scale_h);
if (cursor_scale_w != underlying_scale_w ||
                    cursor_scale_h != underlying_scale_h) {
--
Hamza

Reply via email to