aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display
diff options
context:
space:
mode:
authorDavid Francis <David.Francis@amd.com>2019-02-06 14:01:29 -0500
committerAlex Deucher <alexander.deucher@amd.com>2019-03-19 15:04:03 -0500
commit34bafd27e3429fe0d7422ef4a6f7deaf70151583 (patch)
treea8d16e4cafbd9cc1deb2f4f1062336ca713ad226 /drivers/gpu/drm/amd/display
parent0d579c7e25f514bc6e6db0a5e03d827718c1e4ac (diff)
drm/amd/display: Allow pflips from a framebuffer to itself
[Why] IGT expects that pageflips can be triggered with the same framebuffer before and after the commit [How] Expand the definition of pageflip to include any change with an old framebuffer and a new framebuffer, even if they're the same Signed-off-by: David Francis <David.Francis@amd.com> Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display')
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c9
1 files changed, 4 insertions, 5 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 e74fd9f3fe70..38fa2cedf1e4 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4695,7 +4695,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
struct drm_crtc_state *new_crtc_state;
struct drm_framebuffer *fb = new_plane_state->fb;
struct amdgpu_framebuffer *afb = to_amdgpu_framebuffer(fb);
- bool framebuffer_changed;
+ bool plane_needs_flip;
struct dc_plane_state *dc_plane;
struct dm_plane_state *dm_new_plane_state = to_dm_plane_state(new_plane_state);
@@ -4712,12 +4712,11 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
dc_plane = dm_new_plane_state->dc_state;
- framebuffer_changed = old_plane_state->fb &&
- old_plane_state->fb != new_plane_state->fb;
+ plane_needs_flip = old_plane_state->fb && new_plane_state->fb;
- pflip_present = pflip_present || framebuffer_changed;
+ pflip_present = pflip_present || plane_needs_flip;
- if (framebuffer_changed) {
+ if (plane_needs_flip) {
/*
* TODO This might fail and hence better not used, wait
* explicitly on fences instead