drm/nv50/disp: fix missing sor modectrl sync flags
authorBen Skeggs <bskeggs@redhat.com>
Mon, 11 Feb 2013 03:56:31 +0000 (13:56 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 20 Feb 2013 06:00:43 +0000 (16:00 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nv50_display.c

index 35874085a61e62920f8e584c51e86de8d5112216..c9da4f10892445e33e5382de13b53bc20b505de3 100644 (file)
@@ -1825,8 +1825,13 @@ nv50_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode,
        push = evo_wait(nv50_mast(dev), 8);
        if (push) {
                if (nv50_vers(mast) < NVD0_DISP_CLASS) {
+                       u32 ctrl = (depth << 16) | (proto << 8) | owner;
+                       if (mode->flags & DRM_MODE_FLAG_NHSYNC)
+                               ctrl |= 0x00001000;
+                       if (mode->flags & DRM_MODE_FLAG_NVSYNC)
+                               ctrl |= 0x00002000;
                        evo_mthd(push, 0x0600 + (nv_encoder->or * 0x040), 1);
-                       evo_data(push, (depth << 16) | (proto << 8) | owner);
+                       evo_data(push, ctrl);
                } else {
                        u32 magic = 0x31ec6000 | (nv_crtc->index << 25);
                        u32 syncs = 0x00000001;