drm/nouveau/kms: prepare to support vbl timestamp calculation with atomic
authorBen Skeggs <bskeggs@redhat.com>
Fri, 4 Nov 2016 07:20:35 +0000 (17:20 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 7 Nov 2016 04:04:48 +0000 (14:04 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nouveau_display.c

index 1c4b2ca6bfd5932eea639ebf24d96f1b68e21fb8..340ca3ee130442b0af1962cc01346dbdf6b7d529 100644 (file)
@@ -158,9 +158,13 @@ nouveau_display_vblstamp(struct drm_device *dev, unsigned int pipe,
 
        list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
                if (nouveau_crtc(crtc)->index == pipe) {
+                       struct drm_display_mode *mode;
+                       if (dev->mode_config.funcs->atomic_commit)
+                               mode = &crtc->state->adjusted_mode;
+                       else
+                               mode = &crtc->hwmode;
                        return drm_calc_vbltimestamp_from_scanoutpos(dev,
-                                       pipe, max_error, time, flags,
-                                       &crtc->hwmode);
+                                       pipe, max_error, time, flags, mode);
                }
        }