dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Deepak Rawat <drawat@vmware.com>
To: dri-devel@lists.freedesktop.org,
	linux-graphics-maintainer@vmware.com, thellstrom@vmware.com,
	syeh@vmware.com
Cc: Deepak Rawat <drawat@vmware.com>
Subject: [PATCH v3 09/18] drm/vmwgfx: Use the new interface for STDU plane update
Date: Wed, 10 Oct 2018 17:16:48 -0700	[thread overview]
Message-ID: <20181011001657.1715-9-drawat@vmware.com> (raw)
In-Reply-To: <20181011001657.1715-1-drawat@vmware.com>

With new interface to do plane update on STDU available, use that
instead of old kms_dirty.

v2: Use fence from new resource validation.

Signed-off-by: Deepak Rawat <drawat@vmware.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 54 +++++++++++-----------------
 1 file changed, 20 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index a084a0f533d8..64d11af2b81b 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1670,6 +1670,7 @@ vmw_stdu_primary_plane_atomic_update(struct drm_plane *plane,
 	struct drm_crtc *crtc = plane->state->crtc;
 	struct vmw_screen_target_display_unit *stdu;
 	struct drm_pending_vblank_event *event;
+	struct vmw_fence_obj *fence = NULL;
 	struct vmw_private *dev_priv;
 	int ret;
 
@@ -1680,7 +1681,6 @@ vmw_stdu_primary_plane_atomic_update(struct drm_plane *plane,
 	if (crtc && plane->state->fb) {
 		struct vmw_framebuffer *vfb =
 			vmw_framebuffer_to_vfb(plane->state->fb);
-		struct drm_vmw_rect vclips;
 		stdu = vmw_crtc_to_stdu(crtc);
 		dev_priv = vmw_priv(crtc->dev);
 
@@ -1688,23 +1688,17 @@ vmw_stdu_primary_plane_atomic_update(struct drm_plane *plane,
 		stdu->content_fb_type = vps->content_fb_type;
 		stdu->cpp = vps->cpp;
 
-		vclips.x = crtc->x;
-		vclips.y = crtc->y;
-		vclips.w = crtc->mode.hdisplay;
-		vclips.h = crtc->mode.vdisplay;
-
 		ret = vmw_stdu_bind_st(dev_priv, stdu, &stdu->display_srf->res);
 		if (ret)
 			DRM_ERROR("Failed to bind surface to STDU.\n");
 
 		if (vfb->bo)
-			ret = vmw_kms_stdu_dma(dev_priv, NULL, vfb, NULL, NULL,
-					       &vclips, 1, 1, true, false,
-					       crtc);
+			ret = vmw_stdu_plane_update_bo(dev_priv, plane,
+						       old_state, vfb, &fence);
 		else
-			ret = vmw_kms_stdu_surface_dirty(dev_priv, vfb, NULL,
-							 &vclips, NULL, 0, 0,
-							 1, 1, NULL, crtc);
+			ret = vmw_stdu_plane_update_surface(dev_priv, plane,
+							    old_state, vfb,
+							    &fence);
 		if (ret)
 			DRM_ERROR("Failed to update STDU.\n");
 	} else {
@@ -1737,31 +1731,23 @@ vmw_stdu_primary_plane_atomic_update(struct drm_plane *plane,
 	 * In case of failure and other cases, vblank event will be sent in
 	 * vmw_du_crtc_atomic_flush.
 	 */
-	if (event && (ret == 0)) {
-		struct vmw_fence_obj *fence = NULL;
+	if (event && fence) {
 		struct drm_file *file_priv = event->base.file_priv;
 
-		vmw_execbuf_fence_commands(NULL, dev_priv, &fence, NULL);
-
-		/*
-		 * If fence is NULL, then already sync.
-		 */
-		if (fence) {
-			ret = vmw_event_fence_action_queue(
-				file_priv, fence, &event->base,
-				&event->event.vbl.tv_sec,
-				&event->event.vbl.tv_usec,
-				true);
-			if (ret)
-				DRM_ERROR("Failed to queue event on fence.\n");
-			else
-				crtc->state->event = NULL;
-
-			vmw_fence_obj_unreference(&fence);
-		}
-	} else {
-		(void) vmw_fifo_flush(dev_priv, false);
+		ret = vmw_event_fence_action_queue(file_priv,
+						   fence,
+						   &event->base,
+						   &event->event.vbl.tv_sec,
+						   &event->event.vbl.tv_usec,
+						   true);
+		if (ret)
+			DRM_ERROR("Failed to queue event on fence.\n");
+		else
+			crtc->state->event = NULL;
 	}
+
+	if (fence)
+		vmw_fence_obj_unreference(&fence);
 }
 
 
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2018-10-11  0:17 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-11  0:16 [PATCH v3 01/18] drm: Add a new plane property to send damage during plane update Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 02/18] drm: Add a new helper to validate damage during atomic_check Deepak Rawat
2018-10-15 22:01   ` Sinclair Yeh
2018-10-11  0:16 ` [PATCH v3 03/18] drm: Add helper iterator functions for plane fb_damage_clips blob Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 04/18] drm/selftest: Add drm damage helper selftest Deepak Rawat
2018-10-11 16:23   ` Daniel Vetter
2018-10-15 16:11     ` Deepak Singh Rawat
2018-10-16 12:21       ` Daniel Vetter
2018-10-16 12:52         ` Alexandru-Cosmin Gheorghe
2018-10-16 16:14           ` Deepak Singh Rawat
2018-10-16 16:00         ` Deepak Singh Rawat
2018-10-11  0:16 ` [PATCH v3 05/18] drm: Add helper to implement legacy dirtyfb Deepak Rawat
2018-10-11 16:15   ` Daniel Vetter
2018-10-11 16:21     ` Daniel Vetter
2018-10-11  0:16 ` [PATCH v3 06/18] drm/vmwgfx: Add a new interface for plane update on a display unit Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 07/18] drm/vmwgfx: Implement STDU plane update for surface backed fb Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 08/18] drm/vmwgfx: Implement STDU plane update for BO " Deepak Rawat
2018-10-11  0:16 ` Deepak Rawat [this message]
2018-10-11  0:16 ` [PATCH v3 10/18] drm/vmwgfx: Updated comment for stdu plane update Deepak Rawat
2018-10-15 13:09   ` Thomas Hellstrom
2018-10-11  0:16 ` [PATCH v3 11/18] drm/vmwgfx: Enable FB_DAMAGE_CLIPS property for STDU primary plane Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 12/18] drm/vmwgfx: Implement SOU plane update for surface backed fb Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 13/18] drm/vmwgfx: Implement SOU plane update for BO " Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 14/18] drm/vmwgfx: Use the new interface for SOU plane update Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 15/18] drm/vmwgfx: Update comments for sou plane update function Deepak Rawat
2018-10-15 13:10   ` Thomas Hellstrom
2018-10-11  0:16 ` [PATCH v3 16/18] drm/vmwgfx: Enable FB_DAMAGE_CLIPS property for SOU primary plane Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 17/18] drm/vmwgfx: Use atomic helper function for dirty fb IOCTL Deepak Rawat
2018-10-11  0:16 ` [PATCH v3 18/18] drm/vmwgfx: Don't clear mode::type anymore Deepak Rawat
2018-10-15 13:12   ` Thomas Hellstrom
2018-10-15 13:15 ` [PATCH v3 01/18] drm: Add a new plane property to send damage during plane update Thomas Hellstrom

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181011001657.1715-9-drawat@vmware.com \
    --to=drawat@vmware.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-graphics-maintainer@vmware.com \
    --cc=syeh@vmware.com \
    --cc=thellstrom@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox