[PATCH xf86-video-ati 5/5] Remove drmmode_crtc_private_rec::present_vblank_* related code

Michel Dänzer michel at daenzer.net
Thu Aug 16 16:19:42 UTC 2018


From: Michel Dänzer <michel.daenzer at amd.com>

Not needed anymore with the more robust mechanisms for preventing nested
drmHandleEvent calls introduced in the previous changes.

(Ported from amdgpu commit 85cd8eef0cbed7b409b07f58d76dacd34aa3ddea)

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/drmmode_display.h |  8 --------
 src/radeon_kms.c      |  9 ---------
 src/radeon_present.c  | 34 +++-------------------------------
 3 files changed, 3 insertions(+), 48 deletions(-)

diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index a039bf8fb..bc66eda65 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -111,14 +111,6 @@ typedef struct {
     struct drmmode_fb *flip_pending;
     /* The FB currently being scanned out by this CRTC, if any */
     struct drmmode_fb *fb;
-
-#ifdef HAVE_PRESENT_H
-    /* Deferred processing of Present vblank event */
-    uint64_t present_vblank_event_id;
-    uint64_t present_vblank_usec;
-    unsigned present_vblank_msc;
-    Bool present_flip_expected;
-#endif
 } drmmode_crtc_private_rec, *drmmode_crtc_private_ptr;
 
 typedef struct {
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index 809d24469..a24776811 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -541,15 +541,6 @@ radeon_scanout_flip_handler(xf86CrtcPtr crtc, uint32_t msc, uint64_t usec,
     drmmode_fb_reference(pRADEONEnt->fd, &drmmode_crtc->fb,
 			 drmmode_crtc->flip_pending);
     radeon_scanout_flip_abort(crtc, event_data);
-
-#ifdef HAVE_PRESENT_H
-    if (drmmode_crtc->present_vblank_event_id) {
-	present_event_notify(drmmode_crtc->present_vblank_event_id,
-			     drmmode_crtc->present_vblank_usec,
-			     drmmode_crtc->present_vblank_msc);
-	drmmode_crtc->present_vblank_event_id = 0;
-    }
-#endif
 }
 
 
diff --git a/src/radeon_present.c b/src/radeon_present.c
index ffc14a0e8..d0a0c68ca 100644
--- a/src/radeon_present.c
+++ b/src/radeon_present.c
@@ -52,7 +52,6 @@ static present_screen_info_rec radeon_present_screen_info;
 
 struct radeon_present_vblank_event {
     uint64_t event_id;
-    Bool vblank_for_flip;
     Bool unflip;
 };
 
@@ -120,26 +119,9 @@ static void
 radeon_present_vblank_handler(xf86CrtcPtr crtc, unsigned int msc,
 			      uint64_t usec, void *data)
 {
-    drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
     struct radeon_present_vblank_event *event = data;
 
-    if (event->vblank_for_flip &&
-	drmmode_crtc->tear_free &&
-	drmmode_crtc->scanout_update_pending) {
-	if (drmmode_crtc->present_vblank_event_id != 0) {
-	    xf86DrvMsg(crtc->scrn->scrnIndex, X_WARNING,
-		       "Need to handle previously deferred vblank event\n");
-	    present_event_notify(drmmode_crtc->present_vblank_event_id,
-				 drmmode_crtc->present_vblank_usec,
-				 drmmode_crtc->present_vblank_msc);
-	}
-
-	drmmode_crtc->present_vblank_event_id = event->event_id;
-	drmmode_crtc->present_vblank_msc = msc;
-	drmmode_crtc->present_vblank_usec = usec;
-    } else
-	present_event_notify(event->event_id, usec, msc);
-
+    present_event_notify(event->event_id, usec, msc);
     free(event);
 }
 
@@ -162,7 +144,6 @@ static int
 radeon_present_queue_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc)
 {
     xf86CrtcPtr xf86_crtc = crtc->devPrivate;
-    drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
     ScreenPtr screen = crtc->pScreen;
     struct radeon_present_vblank_event *event;
     uintptr_t drm_queue_seq;
@@ -171,8 +152,6 @@ radeon_present_queue_vblank(RRCrtcPtr crtc, uint64_t event_id, uint64_t msc)
     if (!event)
 	return BadAlloc;
     event->event_id = event_id;
-    event->vblank_for_flip = drmmode_crtc->present_flip_expected;
-    drmmode_crtc->present_flip_expected = FALSE;
 
     drm_queue_seq = radeon_drm_queue_alloc(xf86_crtc,
 					   RADEON_DRM_QUEUE_CLIENT_DEFAULT,
@@ -272,7 +251,6 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
 	      Bool sync_flip)
 {
     xf86CrtcPtr xf86_crtc = crtc->devPrivate;
-    drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
     ScreenPtr screen = window->drawable.pScreen;
     ScrnInfoPtr scrn = xf86_crtc->scrn;
     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
@@ -281,8 +259,6 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
     int num_crtcs_on;
     int i;
 
-    drmmode_crtc->present_flip_expected = FALSE;
-
     if (!scrn->vtSema)
 	return FALSE;
 
@@ -313,7 +289,6 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
     if (num_crtcs_on == 0)
 	return FALSE;
 
-    drmmode_crtc->present_flip_expected = TRUE;
     return TRUE;
 }
 
@@ -354,7 +329,6 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc,
                    PixmapPtr pixmap, Bool sync_flip)
 {
     xf86CrtcPtr xf86_crtc = crtc->devPrivate;
-    drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
     ScreenPtr screen = crtc->pScreen;
     ScrnInfoPtr scrn = xf86_crtc->scrn;
     RADEONInfoPtr info = RADEONPTR(scrn);
@@ -362,11 +336,11 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc,
     Bool ret = FALSE;
 
     if (!radeon_present_check_flip(crtc, screen->root, pixmap, sync_flip))
-	goto out;
+	return ret;
 
     event = calloc(1, sizeof(struct radeon_present_vblank_event));
     if (!event)
-	goto out;
+	return ret;
 
     event->event_id = event_id;
 
@@ -383,8 +357,6 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc,
     else
 	info->drmmode.present_flipping = TRUE;
 
- out:
-    drmmode_crtc->present_flip_expected = FALSE;
     return ret;
 }
 
-- 
2.18.0



More information about the amd-gfx mailing list