diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2019-09-03 15:06:42 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2019-09-18 12:43:36 -0400 |
commit | 4d85f45c73a22bc0ee900c7505b7210a87a7966d (patch) | |
tree | 00dd06f5801f00604a2a6a7ad70602e457b68b3b | |
parent | f2cbda2dba11de868759cae9c0d2bab5b8411406 (diff) |
drm/atomic: Rename crtc_state->pageflip_flags to async_flip
It's the only flag anyone actually cares about. Plus if we're unlucky,
the atomic ioctl might need a different flag for async flips. So
better to abstract this away from the uapi a bit.
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Michel Dänzer <michel@daenzer.net>
Cc: Alex Deucher <alexdeucher@gmail.com>
Cc: Adam Jackson <ajax@redhat.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: David Francis <David.Francis@amd.com>
Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190903190642.32588-3-daniel.vetter@ffwll.ch
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_atomic_helper.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_atomic_state_helper.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/wndw.c | 4 | ||||
-rw-r--r-- | include/drm/drm_crtc.h | 8 |
5 files changed, 10 insertions, 11 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 0a71ed1e7762..2f0ef0820f00 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | |||
@@ -5756,8 +5756,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state, | |||
5756 | * change FB pitch, DCC state, rotation or mirroing. | 5756 | * change FB pitch, DCC state, rotation or mirroing. |
5757 | */ | 5757 | */ |
5758 | bundle->flip_addrs[planes_count].flip_immediate = | 5758 | bundle->flip_addrs[planes_count].flip_immediate = |
5759 | (crtc->state->pageflip_flags & | 5759 | crtc->state->async_flip && |
5760 | DRM_MODE_PAGE_FLIP_ASYNC) != 0 && | ||
5761 | acrtc_state->update_type == UPDATE_TYPE_FAST; | 5760 | acrtc_state->update_type == UPDATE_TYPE_FAST; |
5762 | 5761 | ||
5763 | timestamp_ns = ktime_get_ns(); | 5762 | timestamp_ns = ktime_get_ns(); |
@@ -6334,7 +6333,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state) | |||
6334 | amdgpu_dm_enable_crtc_interrupts(dev, state, true); | 6333 | amdgpu_dm_enable_crtc_interrupts(dev, state, true); |
6335 | 6334 | ||
6336 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) | 6335 | for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) |
6337 | if (new_crtc_state->pageflip_flags & DRM_MODE_PAGE_FLIP_ASYNC) | 6336 | if (new_crtc_state->async_flip) |
6338 | wait_for_vblank = false; | 6337 | wait_for_vblank = false; |
6339 | 6338 | ||
6340 | /* update planes when needed per crtc*/ | 6339 | /* update planes when needed per crtc*/ |
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index aa16ea17ff9b..3a67f63c3146 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c | |||
@@ -3275,7 +3275,7 @@ static int page_flip_common(struct drm_atomic_state *state, | |||
3275 | return PTR_ERR(crtc_state); | 3275 | return PTR_ERR(crtc_state); |
3276 | 3276 | ||
3277 | crtc_state->event = event; | 3277 | crtc_state->event = event; |
3278 | crtc_state->pageflip_flags = flags; | 3278 | crtc_state->async_flip = flags & DRM_MODE_PAGE_FLIP_ASYNC; |
3279 | 3279 | ||
3280 | plane_state = drm_atomic_get_plane_state(state, plane); | 3280 | plane_state = drm_atomic_get_plane_state(state, plane); |
3281 | if (IS_ERR(plane_state)) | 3281 | if (IS_ERR(plane_state)) |
diff --git a/drivers/gpu/drm/drm_atomic_state_helper.c b/drivers/gpu/drm/drm_atomic_state_helper.c index 46dc264a248b..d0a937fb0c56 100644 --- a/drivers/gpu/drm/drm_atomic_state_helper.c +++ b/drivers/gpu/drm/drm_atomic_state_helper.c | |||
@@ -128,7 +128,7 @@ void __drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc, | |||
128 | state->zpos_changed = false; | 128 | state->zpos_changed = false; |
129 | state->commit = NULL; | 129 | state->commit = NULL; |
130 | state->event = NULL; | 130 | state->event = NULL; |
131 | state->pageflip_flags = 0; | 131 | state->async_flip = false; |
132 | 132 | ||
133 | /* Self refresh should be canceled when a new update is available */ | 133 | /* Self refresh should be canceled when a new update is available */ |
134 | state->active = drm_atomic_crtc_effectively_active(state); | 134 | state->active = drm_atomic_crtc_effectively_active(state); |
diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 2db029371c91..5193b6257061 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c | |||
@@ -267,7 +267,7 @@ nv50_wndw_atomic_check_acquire(struct nv50_wndw *wndw, bool modeset, | |||
267 | asyw->image.pitch[0] = fb->base.pitches[0]; | 267 | asyw->image.pitch[0] = fb->base.pitches[0]; |
268 | } | 268 | } |
269 | 269 | ||
270 | if (!(asyh->state.pageflip_flags & DRM_MODE_PAGE_FLIP_ASYNC)) | 270 | if (!asyh->state.async_flip) |
271 | asyw->image.interval = 1; | 271 | asyw->image.interval = 1; |
272 | else | 272 | else |
273 | asyw->image.interval = 0; | 273 | asyw->image.interval = 0; |
@@ -383,7 +383,7 @@ nv50_wndw_atomic_check_lut(struct nv50_wndw *wndw, | |||
383 | } | 383 | } |
384 | 384 | ||
385 | /* Can't do an immediate flip while changing the LUT. */ | 385 | /* Can't do an immediate flip while changing the LUT. */ |
386 | asyh->state.pageflip_flags &= ~DRM_MODE_PAGE_FLIP_ASYNC; | 386 | asyh->state.async_flip = false; |
387 | } | 387 | } |
388 | 388 | ||
389 | static int | 389 | static int |
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 7d14c11bdc0a..c4528eb5d168 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
@@ -285,12 +285,12 @@ struct drm_crtc_state { | |||
285 | u32 target_vblank; | 285 | u32 target_vblank; |
286 | 286 | ||
287 | /** | 287 | /** |
288 | * @pageflip_flags: | 288 | * @async_flip: |
289 | * | 289 | * |
290 | * DRM_MODE_PAGE_FLIP_* flags, as passed to the page flip ioctl. | 290 | * This is set when DRM_MODE_PAGE_FLIP_ASYNC is set in the legacy |
291 | * Zero in any other case. | 291 | * PAGE_FLIP IOCTL. It's not wired up for the atomic IOCTL itself yet. |
292 | */ | 292 | */ |
293 | u32 pageflip_flags; | 293 | bool async_flip; |
294 | 294 | ||
295 | /** | 295 | /** |
296 | * @vrr_enabled: | 296 | * @vrr_enabled: |