diff options
author | David Francis | 2019-02-06 20:01:29 +0100 |
---|---|---|
committer | Alex Deucher | 2019-03-19 21:04:03 +0100 |
commit | 34bafd27e3429fe0d7422ef4a6f7deaf70151583 (patch) | |
tree | a8d16e4cafbd9cc1deb2f4f1062336ca713ad226 /drivers/gpu/drm/amd/display/amdgpu_dm | |
parent | drm/amd/display: Create overlay planes (diff) | |
download | kernel-qcow2-linux-34bafd27e3429fe0d7422ef4a6f7deaf70151583.tar.gz kernel-qcow2-linux-34bafd27e3429fe0d7422ef4a6f7deaf70151583.tar.xz kernel-qcow2-linux-34bafd27e3429fe0d7422ef4a6f7deaf70151583.zip |
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/amdgpu_dm')
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 9 |
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 |