drm: qxl: Don't initialize vblank support
authorGabriel Krisman Bertazi <krisman@collabora.co.uk>
Mon, 27 Feb 2017 20:43:17 +0000 (17:43 -0300)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 28 Feb 2017 16:26:10 +0000 (17:26 +0100)
qxl don't have support for hardware vblanks so we can't initialize it
here, otherwise we risk getting stuck in drm_wait_one_vblank.

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170227204328.18761-4-krisman@collabora.co.uk
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/qxl/qxl_display.c
drivers/gpu/drm/qxl/qxl_drv.c

index 0957db17de4daf2b0daa35417962facd170a7fb6..a82fc3678b8e74783ca000312e143f10740f88ba 100644 (file)
@@ -293,14 +293,11 @@ static int qxl_crtc_page_flip(struct drm_crtc *crtc,
        qxl_draw_dirty_fb(qdev, qfb_src, bo, 0, 0,
                          &norect, one_clip_rect, inc);
 
-       drm_crtc_vblank_get(crtc);
-
        if (event) {
                spin_lock_irqsave(&dev->event_lock, flags);
                drm_crtc_send_vblank_event(crtc, event);
                spin_unlock_irqrestore(&dev->event_lock, flags);
        }
-       drm_crtc_vblank_put(crtc);
 
        qxl_bo_unpin(bo);
 
@@ -532,29 +529,12 @@ static int qxl_crtc_cursor_move(struct drm_crtc *crtc,
        return 0;
 }
 
-static u32 qxl_noop_get_vblank_counter(struct drm_crtc *crtc)
-{
-       return 0;
-}
-
-static int qxl_noop_enable_vblank(struct drm_crtc *crtc)
-{
-       return 0;
-}
-
-static void qxl_noop_disable_vblank(struct drm_crtc *crtc)
-{
-}
-
 static const struct drm_crtc_funcs qxl_crtc_funcs = {
        .cursor_set2 = qxl_crtc_cursor_set2,
        .cursor_move = qxl_crtc_cursor_move,
        .set_config = drm_crtc_helper_set_config,
        .destroy = qxl_crtc_destroy,
        .page_flip = qxl_crtc_page_flip,
-       .get_vblank_counter = qxl_noop_get_vblank_counter,
-       .enable_vblank = qxl_noop_enable_vblank,
-       .disable_vblank = qxl_noop_disable_vblank,
 };
 
 void qxl_user_framebuffer_destroy(struct drm_framebuffer *fb)
index e141db9c6211334d426af82df2c73c05eb60b10b..67e94f4f3ce80fa1c570e37d8fed9d0055625202 100644 (file)
@@ -83,13 +83,9 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (ret)
                goto disable_pci;
 
-       ret = drm_vblank_init(&qdev->ddev, 1);
-       if (ret)
-               goto unload;
-
        ret = qxl_modeset_init(qdev);
        if (ret)
-               goto vblank_cleanup;
+               goto unload;
 
        drm_kms_helper_poll_init(&qdev->ddev);
 
@@ -102,8 +98,6 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 modeset_cleanup:
        qxl_modeset_fini(qdev);
-vblank_cleanup:
-       drm_vblank_cleanup(&qdev->ddev);
 unload:
        qxl_device_fini(qdev);
 disable_pci: