]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/gpu/drm/drm_irq.c
Merge branches 'for-4.4/upstream-fixes', 'for-4.5/async-suspend', 'for-4.5/container...
[mirror_ubuntu-artful-kernel.git] / drivers / gpu / drm / drm_irq.c
index eba6337f5860cddf62efbe9fc6829db0c55343f6..2151ea551d3bd6526d850754b79ece388a9279df 100644 (file)
@@ -616,10 +616,18 @@ int drm_control(struct drm_device *dev, void *data,
 void drm_calc_timestamping_constants(struct drm_crtc *crtc,
                                     const struct drm_display_mode *mode)
 {
-       struct drm_vblank_crtc *vblank = &crtc->dev->vblank[drm_crtc_index(crtc)];
+       struct drm_device *dev = crtc->dev;
+       unsigned int pipe = drm_crtc_index(crtc);
+       struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
        int linedur_ns = 0, framedur_ns = 0;
        int dotclock = mode->crtc_clock;
 
+       if (!dev->num_crtcs)
+               return;
+
+       if (WARN_ON(pipe >= dev->num_crtcs))
+               return;
+
        /* Valid dotclock? */
        if (dotclock > 0) {
                int frame_size = mode->crtc_htotal * mode->crtc_vtotal;