summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2017-07-28 12:28:53 +0900
committerMichel Dänzer <michel@daenzer.net>2017-08-17 15:38:21 +0900
commitf87acdbfb1b0b6d2769764772a52ea8b81675e20 (patch)
treeea368bef456e741e246cd679d7c79ac9a7d9f864
parent99f1d7a474af3683fe1a66f50c0bb8935478ff0a (diff)
Create drmmode_crtc_wait_pending_event helper macro
Preparation for following change, no functional change intended yet. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/drmmode_display.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index d86f8300..45e04058 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -99,6 +99,14 @@ RADEONZaphodStringMatches(ScrnInfoPtr pScrn, const char *s, char *output_name)
return FALSE;
}
+
+/* Wait for the boolean condition to be FALSE */
+#define drmmode_crtc_wait_pending_event(drmmode_crtc, fd, condition) \
+ do {} while ((condition) && \
+ drmHandleEvent(fd, &drmmode_crtc->drmmode->event_context) \
+ > 0);
+
+
static PixmapPtr drmmode_create_bo_pixmap(ScrnInfoPtr pScrn,
int width, int height,
int depth, int bpp,
@@ -951,10 +959,8 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
goto done;
}
- /* Wait for any pending flip to finish */
- do {} while (drmmode_crtc->flip_pending &&
- drmHandleEvent(pRADEONEnt->fd,
- &drmmode->event_context) > 0);
+ drmmode_crtc_wait_pending_event(drmmode_crtc, pRADEONEnt->fd,
+ drmmode_crtc->flip_pending);
if (drmModeSetCrtc(pRADEONEnt->fd,
drmmode_crtc->mode_crtc->crtc_id,