drm/qxl: track primary bo
Track which bo is used as primary surface. With that in place we don't need the primary_created flag any more, we can just check the primary bo pointer instead. Also verify we don't already have a primary surface in qxl_io_create_primary(). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Noralf Trønnes <noralf@tronnes.org> Link: http://patchwork.freedesktop.org/patch/msgid/20190118122020.27596-13-kraxel@redhat.com
This commit is contained in:
@@ -374,13 +374,16 @@ void qxl_io_flush_surfaces(struct qxl_device *qdev)
|
||||
void qxl_io_destroy_primary(struct qxl_device *qdev)
|
||||
{
|
||||
wait_for_io_cmd(qdev, 0, QXL_IO_DESTROY_PRIMARY_ASYNC);
|
||||
qdev->primary_created = false;
|
||||
qdev->primary_bo = NULL;
|
||||
}
|
||||
|
||||
void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo)
|
||||
{
|
||||
struct qxl_surface_create *create;
|
||||
|
||||
if (WARN_ON(qdev->primary_bo))
|
||||
return;
|
||||
|
||||
DRM_DEBUG_DRIVER("qdev %p, ram_header %p\n", qdev, qdev->ram_header);
|
||||
create = &qdev->ram_header->create_surface;
|
||||
create->format = bo->surf.format;
|
||||
@@ -399,7 +402,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, struct qxl_bo *bo)
|
||||
create->type = QXL_SURF_TYPE_PRIMARY;
|
||||
|
||||
wait_for_io_cmd(qdev, 0, QXL_IO_CREATE_PRIMARY_ASYNC);
|
||||
qdev->primary_created = true;
|
||||
qdev->primary_bo = bo;
|
||||
}
|
||||
|
||||
void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id)
|
||||
|
Reference in New Issue
Block a user