summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/qxl/qxl_cmd.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-07-22 14:38:00 +1000
committerDave Airlie <airlied@redhat.com>2013-07-22 14:38:00 +1000
commitafb64ff23f72c1e4232d1ef22b21dc45d38baf05 (patch)
tree060162b5cd29a63cda9ea83a26d408b96d277d2a /drivers/gpu/drm/qxl/qxl_cmd.c
parent576e1d9a7ae0bc75dc0b8a04ad8b5adabcdafaa5 (diff)
qxl: WIP port to reservations code OMGqxl-wtuf-reservations-port
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_cmd.c')
-rw-r--r--drivers/gpu/drm/qxl/qxl_cmd.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
index 6efcf140bda1..1ada5d72e7c4 100644
--- a/drivers/gpu/drm/qxl/qxl_cmd.c
+++ b/drivers/gpu/drm/qxl/qxl_cmd.c
@@ -254,7 +254,25 @@ int qxl_garbage_collect(struct qxl_device *qdev)
return i;
}
-int qxl_alloc_bo_reserved(struct qxl_device *qdev, unsigned long size,
+int qxl_alloc_bo(struct qxl_device *qdev,
+ unsigned long size,
+ struct qxl_bo **_bo)
+{
+ int ret;
+ struct qxl_bo *bo;
+ ret = qxl_bo_create(qdev, size, false /* not kernel - device */,
+ QXL_GEM_DOMAIN_VRAM, NULL, &bo);
+ if (ret) {
+ DRM_ERROR("failed to allocate VRAM BO\n");
+ return ret;
+ }
+ *_bo = bo;
+ return 0;
+}
+
+int qxl_alloc_bo_reserved(struct qxl_device *qdev,
+ struct qxl_release *release,
+ unsigned long size,
struct qxl_bo **_bo)
{
struct qxl_bo *bo;
@@ -266,7 +284,7 @@ int qxl_alloc_bo_reserved(struct qxl_device *qdev, unsigned long size,
DRM_ERROR("failed to allocate VRAM BO\n");
return ret;
}
- ret = qxl_bo_reserve(bo, false);
+ ret = qxl_bo_ticket_reserve(release, bo, false);
if (unlikely(ret != 0))
goto out_unref;