From: Michel Dänzer <[email protected]>

To reduce code duplication between DRI2 and Present. No functional
change intended yet.

Signed-off-by: Michel Dänzer <[email protected]>
---
 src/drmmode_display.h | 11 +++++++++++
 src/radeon_dri2.c     |  5 +----
 src/radeon_present.c  |  8 +++-----
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/drmmode_display.h b/src/drmmode_display.h
index b9bc8fd8c..4378be86f 100644
--- a/src/drmmode_display.h
+++ b/src/drmmode_display.h
@@ -139,6 +139,17 @@ enum drmmode_flip_sync {
 };
 
 
+/* Can the page flip ioctl be used for this CRTC? */
+static inline Bool
+drmmode_crtc_can_flip(xf86CrtcPtr crtc)
+{
+    drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+
+    return crtc->enabled &&
+       drmmode_crtc->pending_dpms_mode == DPMSModeOn;
+}
+
+
 static inline void
 drmmode_fb_reference_loc(int drm_fd, struct drmmode_fb **old, struct 
drmmode_fb *new,
                         const char *caller, unsigned line)
diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index 35fb60d91..70751b0bf 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -774,14 +774,11 @@ can_flip(ScrnInfoPtr pScrn, DrawablePtr draw,
        xf86CrtcPtr crtc = config->crtc[i];
        drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 
-       if (!crtc->enabled)
-           continue;
-
        if (!drmmode_crtc || drmmode_crtc->rotate.bo ||
            drmmode_crtc->scanout[drmmode_crtc->scanout_id].bo)
            return FALSE;
 
-       if (drmmode_crtc->pending_dpms_mode == DPMSModeOn)
+       if (drmmode_crtc_can_flip(crtc))
            num_crtcs_on++;
     }
 
diff --git a/src/radeon_present.c b/src/radeon_present.c
index e3a8f7e2b..85da655db 100644
--- a/src/radeon_present.c
+++ b/src/radeon_present.c
@@ -243,16 +243,14 @@ radeon_present_check_unflip(ScrnInfoPtr scrn)
        return FALSE;
 
     for (i = 0, num_crtcs_on = 0; i < config->num_crtc; i++) {
-       drmmode_crtc_private_ptr drmmode_crtc = config->crtc[i]->driver_private;
-
-       if (!config->crtc[i]->enabled)
-           continue;
+       xf86CrtcPtr crtc = config->crtc[i];
+       drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 
        if (!drmmode_crtc || drmmode_crtc->rotate.bo ||
            drmmode_crtc->scanout[drmmode_crtc->scanout_id].bo)
            return FALSE;
 
-       if (drmmode_crtc->pending_dpms_mode == DPMSModeOn)
+       if (drmmode_crtc_can_flip(crtc))
            num_crtcs_on++;
     }
 
-- 
2.13.3

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to