Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64ca824e authored by Gabriel Krisman Bertazi's avatar Gabriel Krisman Bertazi Committed by Gerd Hoffmann
Browse files

drm: qxl: Don't initialize vblank support



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: default avatarGabriel Krisman Bertazi <krisman@collabora.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170227204328.18761-4-krisman@collabora.co.uk


Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 715a11fa
Loading
Loading
Loading
Loading
+0 −20
Original line number Original line Diff line number Diff line
@@ -293,14 +293,11 @@ static int qxl_crtc_page_flip(struct drm_crtc *crtc,
	qxl_draw_dirty_fb(qdev, qfb_src, bo, 0, 0,
	qxl_draw_dirty_fb(qdev, qfb_src, bo, 0, 0,
			  &norect, one_clip_rect, inc);
			  &norect, one_clip_rect, inc);


	drm_crtc_vblank_get(crtc);

	if (event) {
	if (event) {
		spin_lock_irqsave(&dev->event_lock, flags);
		spin_lock_irqsave(&dev->event_lock, flags);
		drm_crtc_send_vblank_event(crtc, event);
		drm_crtc_send_vblank_event(crtc, event);
		spin_unlock_irqrestore(&dev->event_lock, flags);
		spin_unlock_irqrestore(&dev->event_lock, flags);
	}
	}
	drm_crtc_vblank_put(crtc);


	qxl_bo_unpin(bo);
	qxl_bo_unpin(bo);


@@ -532,29 +529,12 @@ static int qxl_crtc_cursor_move(struct drm_crtc *crtc,
	return 0;
	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 = {
static const struct drm_crtc_funcs qxl_crtc_funcs = {
	.cursor_set2 = qxl_crtc_cursor_set2,
	.cursor_set2 = qxl_crtc_cursor_set2,
	.cursor_move = qxl_crtc_cursor_move,
	.cursor_move = qxl_crtc_cursor_move,
	.set_config = drm_crtc_helper_set_config,
	.set_config = drm_crtc_helper_set_config,
	.destroy = qxl_crtc_destroy,
	.destroy = qxl_crtc_destroy,
	.page_flip = qxl_crtc_page_flip,
	.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)
void qxl_user_framebuffer_destroy(struct drm_framebuffer *fb)
+1 −7
Original line number Original line Diff line number Diff line
@@ -83,13 +83,9 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
	if (ret)
	if (ret)
		goto disable_pci;
		goto disable_pci;


	ret = drm_vblank_init(&qdev->ddev, 1);
	if (ret)
		goto unload;

	ret = qxl_modeset_init(qdev);
	ret = qxl_modeset_init(qdev);
	if (ret)
	if (ret)
		goto vblank_cleanup;
		goto unload;


	drm_kms_helper_poll_init(&qdev->ddev);
	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:
modeset_cleanup:
	qxl_modeset_fini(qdev);
	qxl_modeset_fini(qdev);
vblank_cleanup:
	drm_vblank_cleanup(&qdev->ddev);
unload:
unload:
	qxl_device_fini(qdev);
	qxl_device_fini(qdev);
disable_pci:
disable_pci: