Zbigniew Jędrzejewski-Szmek 62fe94
From 95dbf6b19e8f25e28224b954ef99d96225b4e6e7 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: David Herrmann <dh.herrmann@gmail.com>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Sat, 20 Sep 2014 11:10:04 +0200
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] terminal: split grdrm_crtc_commit() apart
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
This helper is quite huge, split it apart to make it easier to follow.
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/libsystemd-terminal/grdev-drm.c | 228 ++++++++++++++++++++----------------
Zbigniew Jędrzejewski-Szmek 62fe94
 1 file changed, 129 insertions(+), 99 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/libsystemd-terminal/grdev-drm.c b/src/libsystemd-terminal/grdev-drm.c
Zbigniew Jędrzejewski-Szmek 62fe94
index f0f0448635..00aac292d2 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/libsystemd-terminal/grdev-drm.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/libsystemd-terminal/grdev-drm.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1083,15 +1083,136 @@ static void grdrm_crtc_expose(grdrm_crtc *crtc) {
Zbigniew Jędrzejewski-Szmek 62fe94
         grdev_pipe_ready(&crtc->pipe->base, true);
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-static void grdrm_crtc_commit(grdrm_crtc *crtc) {
Zbigniew Jędrzejewski-Szmek 62fe94
+static void grdrm_crtc_commit_deep(grdrm_crtc *crtc, grdev_fb **slot) {
Zbigniew Jędrzejewski-Szmek 62fe94
+        struct drm_mode_crtc set_crtc = { .crtc_id = crtc->object.id };
Zbigniew Jędrzejewski-Szmek 62fe94
+        grdrm_card *card = crtc->object.card;
Zbigniew Jędrzejewski-Szmek 62fe94
+        grdrm_pipe *pipe = crtc->pipe;
Zbigniew Jędrzejewski-Szmek 62fe94
+        grdrm_fb *fb = fb_from_base(*slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        size_t i;
Zbigniew Jędrzejewski-Szmek 62fe94
+        int r;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(crtc);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(*slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(pipe);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.set_connectors_ptr = PTR_TO_UINT64(crtc->set.connectors);
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.count_connectors = crtc->set.n_connectors;
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.fb_id = fb->id;
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.x = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.y = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.mode_valid = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+        set_crtc.mode = crtc->set.mode;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        r = ioctl(card->fd, DRM_IOCTL_MODE_SETCRTC, &set_crtc);
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (r < 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                r = -errno;
Zbigniew Jędrzejewski-Szmek 62fe94
+                log_debug("grdrm: %s: cannot set crtc %" PRIu32 ": %m",
Zbigniew Jędrzejewski-Szmek 62fe94
+                          card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                grdrm_card_async(card, r);
Zbigniew Jędrzejewski-Szmek 62fe94
+                return;
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!crtc->applied) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                log_debug("grdrm: %s: crtc %" PRIu32 " applied via deep modeset",
Zbigniew Jędrzejewski-Szmek 62fe94
+                          card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
+                crtc->applied = true;
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        *slot = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
+        pipe->base.front = &fb->base;
Zbigniew Jędrzejewski-Szmek 62fe94
+        fb->flipid = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+        ++pipe->counter;
Zbigniew Jędrzejewski-Szmek 62fe94
+        pipe->base.flipping = false;
Zbigniew Jędrzejewski-Szmek 62fe94
+        pipe->base.flip = false;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!pipe->base.back) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                for (i = 0; i < pipe->base.max_fbs; ++i) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                        if (!pipe->base.fbs[i])
Zbigniew Jędrzejewski-Szmek 62fe94
+                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                        fb = fb_from_base(pipe->base.fbs[i]);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        if (&fb->base == pipe->base.front)
Zbigniew Jędrzejewski-Szmek 62fe94
+                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                        fb->flipid = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        pipe->base.back = &fb->base;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        break;
Zbigniew Jędrzejewski-Szmek 62fe94
+                }
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+}
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+static int grdrm_crtc_commit_flip(grdrm_crtc *crtc, grdev_fb **slot) {
Zbigniew Jędrzejewski-Szmek 62fe94
         struct drm_mode_crtc_page_flip page_flip = { .crtc_id = crtc->object.id };
Zbigniew Jędrzejewski-Szmek 62fe94
+        grdrm_card *card = crtc->object.card;
Zbigniew Jędrzejewski-Szmek 62fe94
+        grdrm_pipe *pipe = crtc->pipe;
Zbigniew Jędrzejewski-Szmek 62fe94
+        grdrm_fb *fb = fb_from_base(*slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        uint32_t cnt;
Zbigniew Jędrzejewski-Szmek 62fe94
+        size_t i;
Zbigniew Jędrzejewski-Szmek 62fe94
+        int r;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(crtc);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(*slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        assert(pipe);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!crtc->applied && !grdrm_modes_compatible(&crtc->kern.mode, &crtc->set.mode))
Zbigniew Jędrzejewski-Szmek 62fe94
+                return 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        cnt = ++pipe->counter ? : ++pipe->counter;
Zbigniew Jędrzejewski-Szmek 62fe94
+        page_flip.fb_id = fb->id;
Zbigniew Jędrzejewski-Szmek 62fe94
+        page_flip.flags = DRM_MODE_PAGE_FLIP_EVENT;
Zbigniew Jędrzejewski-Szmek 62fe94
+        page_flip.user_data = grdrm_encode_vblank_data(crtc->object.id, cnt);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        r = ioctl(card->fd, DRM_IOCTL_MODE_PAGE_FLIP, &page_flip);
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (r < 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                r = -errno;
Zbigniew Jędrzejewski-Szmek 62fe94
+                log_debug("grdrm: %s: cannot schedule page-flip on crtc %" PRIu32 ": %m",
Zbigniew Jędrzejewski-Szmek 62fe94
+                          card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                if (grdrm_card_async(card, r))
Zbigniew Jędrzejewski-Szmek 62fe94
+                        return r;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                return 0;
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!crtc->applied) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                log_debug("grdrm: %s: crtc %" PRIu32 " applied via page flip",
Zbigniew Jędrzejewski-Szmek 62fe94
+                          card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
+                crtc->applied = true;
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        pipe->base.flipping = true;
Zbigniew Jędrzejewski-Szmek 62fe94
+        pipe->base.flip = false;
Zbigniew Jędrzejewski-Szmek 62fe94
+        pipe->counter = cnt;
Zbigniew Jędrzejewski-Szmek 62fe94
+        fb->flipid = cnt;
Zbigniew Jędrzejewski-Szmek 62fe94
+        *slot = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (!pipe->base.back) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                for (i = 0; i < pipe->base.max_fbs; ++i) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                        if (!pipe->base.fbs[i])
Zbigniew Jędrzejewski-Szmek 62fe94
+                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                        fb = fb_from_base(pipe->base.fbs[i]);
Zbigniew Jędrzejewski-Szmek 62fe94
+                        if (&fb->base == pipe->base.front)
Zbigniew Jędrzejewski-Szmek 62fe94
+                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        if (fb->flipid)
Zbigniew Jędrzejewski-Szmek 62fe94
+                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                        pipe->base.back = &fb->base;
Zbigniew Jędrzejewski-Szmek 62fe94
+                        break;
Zbigniew Jędrzejewski-Szmek 62fe94
+                }
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+        return 1;
Zbigniew Jędrzejewski-Szmek 62fe94
+}
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+static void grdrm_crtc_commit(grdrm_crtc *crtc) {
Zbigniew Jędrzejewski-Szmek 62fe94
         struct drm_mode_crtc set_crtc = { .crtc_id = crtc->object.id };
Zbigniew Jędrzejewski-Szmek 62fe94
         grdrm_card *card = crtc->object.card;
Zbigniew Jędrzejewski-Szmek 62fe94
         grdrm_pipe *pipe;
Zbigniew Jędrzejewski-Szmek 62fe94
         grdev_fb **slot;
Zbigniew Jędrzejewski-Szmek 62fe94
-        grdrm_fb *fb;
Zbigniew Jędrzejewski-Szmek 62fe94
-        uint32_t cnt;
Zbigniew Jędrzejewski-Szmek 62fe94
-        size_t i;
Zbigniew Jędrzejewski-Szmek 62fe94
         int r;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         assert(crtc);
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -1141,102 +1262,11 @@ static void grdrm_crtc_commit(grdrm_crtc *crtc) {
Zbigniew Jędrzejewski-Szmek 62fe94
         if (!*slot)
Zbigniew Jędrzejewski-Szmek 62fe94
                 return;
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        fb = fb_from_base(*slot);
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (crtc->applied || grdrm_modes_compatible(&crtc->kern.mode, &crtc->set.mode)) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                cnt = ++pipe->counter ? : ++pipe->counter;
Zbigniew Jędrzejewski-Szmek 62fe94
-                page_flip.fb_id = fb->id;
Zbigniew Jędrzejewski-Szmek 62fe94
-                page_flip.flags = DRM_MODE_PAGE_FLIP_EVENT;
Zbigniew Jędrzejewski-Szmek 62fe94
-                page_flip.user_data = grdrm_encode_vblank_data(crtc->object.id, cnt);
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                r = ioctl(card->fd, DRM_IOCTL_MODE_PAGE_FLIP, &page_flip);
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (r < 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        r = -errno;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        log_debug("grdrm: %s: cannot schedule page-flip on crtc %" PRIu32 ": %m",
Zbigniew Jędrzejewski-Szmek 62fe94
-                                  card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                        if (grdrm_card_async(card, r))
Zbigniew Jędrzejewski-Szmek 62fe94
-                                return;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                        /* fall through to deep modeset */
Zbigniew Jędrzejewski-Szmek 62fe94
-                } else {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        if (!crtc->applied) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                log_debug("grdrm: %s: crtc %" PRIu32 " applied via page flip",
Zbigniew Jędrzejewski-Szmek 62fe94
-                                          card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
-                                crtc->applied = true;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        }
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                        pipe->base.flipping = true;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        pipe->counter = cnt;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        fb->flipid = cnt;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        *slot = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                        if (!pipe->base.back) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                for (i = 0; i < pipe->base.max_fbs; ++i) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        if (!pipe->base.fbs[i])
Zbigniew Jędrzejewski-Szmek 62fe94
-                                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        fb = fb_from_base(pipe->base.fbs[i]);
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        if (&fb->base == pipe->base.front)
Zbigniew Jędrzejewski-Szmek 62fe94
-                                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        if (fb->flipid)
Zbigniew Jędrzejewski-Szmek 62fe94
-                                                continue;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        pipe->base.back = &fb->base;
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        break;
Zbigniew Jędrzejewski-Szmek 62fe94
-                                }
Zbigniew Jędrzejewski-Szmek 62fe94
-                        }
Zbigniew Jędrzejewski-Szmek 62fe94
-                }
Zbigniew Jędrzejewski-Szmek 62fe94
-        }
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (!crtc->applied) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.set_connectors_ptr = PTR_TO_UINT64(crtc->set.connectors);
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.count_connectors = crtc->set.n_connectors;
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.fb_id = fb->id;
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.x = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.y = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.mode_valid = 1;
Zbigniew Jędrzejewski-Szmek 62fe94
-                set_crtc.mode = crtc->set.mode;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                r = ioctl(card->fd, DRM_IOCTL_MODE_SETCRTC, &set_crtc);
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (r < 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        r = -errno;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        log_debug("grdrm: %s: cannot set crtc %" PRIu32 ": %m",
Zbigniew Jędrzejewski-Szmek 62fe94
-                                  card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                        grdrm_card_async(card, r);
Zbigniew Jędrzejewski-Szmek 62fe94
-                        return;
Zbigniew Jędrzejewski-Szmek 62fe94
-                }
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (!crtc->applied) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        log_debug("grdrm: %s: crtc %" PRIu32 " applied via deep modeset",
Zbigniew Jędrzejewski-Szmek 62fe94
-                                  card->base.name, crtc->object.id);
Zbigniew Jędrzejewski-Szmek 62fe94
-                        crtc->applied = true;
Zbigniew Jędrzejewski-Szmek 62fe94
-                }
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                *slot = NULL;
Zbigniew Jędrzejewski-Szmek 62fe94
-                pipe->base.front = &fb->base;
Zbigniew Jędrzejewski-Szmek 62fe94
-                fb->flipid = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
-                ++pipe->counter;
Zbigniew Jędrzejewski-Szmek 62fe94
-                pipe->base.flipping = false;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                if (!pipe->base.back) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                        for (i = 0; i < pipe->base.max_fbs; ++i) {
Zbigniew Jędrzejewski-Szmek 62fe94
-                                if (!pipe->base.fbs[i])
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        continue;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                                fb = fb_from_base(pipe->base.fbs[i]);
Zbigniew Jędrzejewski-Szmek 62fe94
-                                if (&fb->base == pipe->base.front)
Zbigniew Jędrzejewski-Szmek 62fe94
-                                        continue;
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-                                fb->flipid = 0;
Zbigniew Jędrzejewski-Szmek 62fe94
-                                pipe->base.back = &fb->base;
Zbigniew Jędrzejewski-Szmek 62fe94
-                                break;
Zbigniew Jędrzejewski-Szmek 62fe94
-                        }
Zbigniew Jędrzejewski-Szmek 62fe94
-                }
Zbigniew Jędrzejewski-Szmek 62fe94
+        r = grdrm_crtc_commit_flip(crtc, slot);
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (r == 0) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                /* in case we couldn't page-flip, perform deep modeset */
Zbigniew Jędrzejewski-Szmek 62fe94
+                grdrm_crtc_commit_deep(crtc, slot);
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
-
Zbigniew Jędrzejewski-Szmek 62fe94
-        pipe->base.flip = false;
Zbigniew Jędrzejewski-Szmek 62fe94
 }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
 static void grdrm_crtc_restore(grdrm_crtc *crtc) {