Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ee3229c authored by Rob Clark's avatar Rob Clark Committed by Dave Airlie
Browse files

drm: export atomic wait_for_vblanks helper (v2)



v1: original
v2: danvet's kerneldoc nitpicks

Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 51b44eb1
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -754,8 +754,18 @@ static void wait_for_fences(struct drm_device *dev,
	}
}

static void
wait_for_vblanks(struct drm_device *dev, struct drm_atomic_state *old_state)
/**
 * drm_atomic_helper_wait_for_vblanks - wait for vblank on crtcs
 * @dev: DRM device
 * @old_state: atomic state object with old state structures
 *
 * Helper to, after atomic commit, wait for vblanks on all effected
 * crtcs (ie. before cleaning up old framebuffers using
 * drm_atomic_helper_cleanup_planes())
 */
void
drm_atomic_helper_wait_for_vblanks(struct drm_device *dev,
		struct drm_atomic_state *old_state)
{
	struct drm_crtc *crtc;
	struct drm_crtc_state *old_crtc_state;
@@ -800,6 +810,7 @@ wait_for_vblanks(struct drm_device *dev, struct drm_atomic_state *old_state)
		drm_crtc_vblank_put(crtc);
	}
}
EXPORT_SYMBOL(drm_atomic_helper_wait_for_vblanks);

/**
 * drm_atomic_helper_commit - commit validated state object
@@ -859,7 +870,7 @@ int drm_atomic_helper_commit(struct drm_device *dev,

	drm_atomic_helper_commit_post_planes(dev, state);

	wait_for_vblanks(dev, state);
	drm_atomic_helper_wait_for_vblanks(dev, state);

	drm_atomic_helper_cleanup_planes(dev, state);

+3 −0
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@ int drm_atomic_helper_commit(struct drm_device *dev,
			     struct drm_atomic_state *state,
			     bool async);

void drm_atomic_helper_wait_for_vblanks(struct drm_device *dev,
					struct drm_atomic_state *old_state);

void drm_atomic_helper_commit_pre_planes(struct drm_device *dev,
					 struct drm_atomic_state *state);
void drm_atomic_helper_commit_post_planes(struct drm_device *dev,