This driver can perfom async flips on primary planes, so enable it.

Signed-off-by: André Almeida <andrealm...@igalia.com>
---
 drivers/gpu/drm/nouveau/dispnv04/crtc.c | 4 ++++
 drivers/gpu/drm/nouveau/dispnv50/wndw.c | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/dispnv04/crtc.c 
b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
index 4310ad71870b..fd06d46d49ec 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/crtc.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
@@ -1285,6 +1285,7 @@ int
 nv04_crtc_create(struct drm_device *dev, int crtc_num)
 {
        struct nouveau_display *disp = nouveau_display(dev);
+       struct nouveau_drm *drm = nouveau_drm(dev);
        struct nouveau_crtc *nv_crtc;
        struct drm_plane *primary;
        int ret;
@@ -1338,6 +1339,9 @@ nv04_crtc_create(struct drm_device *dev, int crtc_num)
        if (ret)
                return ret;
 
+       if (drm->client.device.info.chipset >= 0x11)
+               primary->async_flip = true;
+
        return nvif_head_vblank_event_ctor(&nv_crtc->head, "kmsVbl", 
nv04_crtc_vblank_handler,
                                           false, &nv_crtc->vblank);
 }
diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c 
b/drivers/gpu/drm/nouveau/dispnv50/wndw.c
index 7a2cceaee6e9..55db0fdf61e7 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c
@@ -763,6 +763,10 @@ nv50_wndw_new_(const struct nv50_wndw_func *func, struct 
drm_device *dev,
                        return ret;
        }
 
+       if (type == DRM_PLANE_TYPE_PRIMARY &&
+           drm->client.device.info.chipset >= 0x11)
+               wndw->plane.async_flip = true;
+
        return 0;
 }
 
-- 
2.45.2

Reply via email to