OpenCloudOS-Kernel/drivers/gpu/drm/qxl
Dave Airlie 8002db6336 qxl: convert qxl driver to proper use for reservations
The recent addition of lockdep support to reservations and their subsequent
use by TTM showed up a number of potential problems with the way qxl was using
TTM objects.

a) it was allocating objects, and reserving them later without validating
underneath the reservation, which meant in extreme conditions the objects could
be evicted before the reservation ever used them.

b) it was reserving objects straight after allocating them, but with no
ability to back off should the reservations fail. It now allocates the necessary
objects then does a complete reservation pass on them to avoid deadlocks.

c) it had two lists per release tracking objects, unnecessary complicating
the reservation process.

This patch removes the dual object tracking, adds reservations ticket support
to the release and fence object handling. It then ports the internal fb
drawing code and the userspace facing ioctl to use the new interfaces properly,
along with cleanup up the error path handling in some codepaths.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-07-24 11:58:10 +10:00
..
Kconfig qxl: fix Kconfig deps - select FB_DEFERRED_IO 2013-05-28 17:03:37 +10:00
Makefile drm: add new QXL driver. (v1.4) 2013-04-12 13:51:07 +10:00
qxl_cmd.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_debugfs.c drivers, drm: fix qxl build error when debugfs is disabled 2013-04-30 10:00:27 +10:00
qxl_dev.h drm: add new QXL driver. (v1.4) 2013-04-12 13:51:07 +10:00
qxl_display.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_draw.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_drv.c qxl: add suspend/resume/hibernate support. 2013-07-05 10:44:18 +10:00
qxl_drv.h qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_dumb.c drm: add new QXL driver. (v1.4) 2013-04-12 13:51:07 +10:00
qxl_fb.c drm/qxl: add delayed fb operations 2013-07-24 11:58:09 +10:00
qxl_fence.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_gem.c qxl: allow creation of pre-pinned objects and use for releases. 2013-07-24 11:58:10 +10:00
qxl_image.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_ioctl.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_irq.c drm: add new QXL driver. (v1.4) 2013-04-12 13:51:07 +10:00
qxl_kms.c qxl: use drm helper hotplug support 2013-07-05 10:44:19 +10:00
qxl_object.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_object.h qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_release.c qxl: convert qxl driver to proper use for reservations 2013-07-24 11:58:10 +10:00
qxl_ttm.c qxl: allow creation of pre-pinned objects and use for releases. 2013-07-24 11:58:10 +10:00