drm/virtio: add virtio_gpu_object_detach() function
The new function balances virtio_gpu_object_attach(). Also make virtio_gpu_cmd_resource_inval_backing() static and switch call sites to the new virtio_gpu_object_attach() function. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Link: http://patchwork.freedesktop.org/patch/msgid/20180829122026.27012-2-kraxel@redhat.com
This commit is contained in:
parent
6c19787e10
commit
b3f13ec958
|
@ -277,13 +277,13 @@ int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
|||
struct virtio_gpu_object *obj,
|
||||
uint32_t resource_id,
|
||||
struct virtio_gpu_fence **fence);
|
||||
void virtio_gpu_object_detach(struct virtio_gpu_device *vgdev,
|
||||
struct virtio_gpu_object *obj);
|
||||
int virtio_gpu_attach_status_page(struct virtio_gpu_device *vgdev);
|
||||
int virtio_gpu_detach_status_page(struct virtio_gpu_device *vgdev);
|
||||
void virtio_gpu_cursor_ping(struct virtio_gpu_device *vgdev,
|
||||
struct virtio_gpu_output *output);
|
||||
int virtio_gpu_cmd_get_display_info(struct virtio_gpu_device *vgdev);
|
||||
void virtio_gpu_cmd_resource_inval_backing(struct virtio_gpu_device *vgdev,
|
||||
uint32_t resource_id);
|
||||
int virtio_gpu_cmd_get_capset_info(struct virtio_gpu_device *vgdev, int idx);
|
||||
int virtio_gpu_cmd_get_capset(struct virtio_gpu_device *vgdev,
|
||||
int idx, int version,
|
||||
|
|
|
@ -291,7 +291,7 @@ static int virtio_gpufb_create(struct drm_fb_helper *helper,
|
|||
return 0;
|
||||
|
||||
err_fb_alloc:
|
||||
virtio_gpu_cmd_resource_inval_backing(vgdev, resid);
|
||||
virtio_gpu_object_detach(vgdev, obj);
|
||||
err_obj_attach:
|
||||
err_obj_vmap:
|
||||
virtio_gpu_gem_free_object(&obj->gem_base);
|
||||
|
|
|
@ -343,8 +343,7 @@ static void virtio_gpu_bo_move_notify(struct ttm_buffer_object *tbo,
|
|||
|
||||
if (!new_mem || (new_mem->placement & TTM_PL_FLAG_SYSTEM)) {
|
||||
if (bo->hw_res_handle)
|
||||
virtio_gpu_cmd_resource_inval_backing(vgdev,
|
||||
bo->hw_res_handle);
|
||||
virtio_gpu_object_detach(vgdev, bo);
|
||||
|
||||
} else if (new_mem->placement & TTM_PL_FLAG_TT) {
|
||||
if (bo->hw_res_handle) {
|
||||
|
|
|
@ -423,8 +423,8 @@ void virtio_gpu_cmd_unref_resource(struct virtio_gpu_device *vgdev,
|
|||
virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
|
||||
}
|
||||
|
||||
void virtio_gpu_cmd_resource_inval_backing(struct virtio_gpu_device *vgdev,
|
||||
uint32_t resource_id)
|
||||
static void virtio_gpu_cmd_resource_inval_backing(struct virtio_gpu_device *vgdev,
|
||||
uint32_t resource_id)
|
||||
{
|
||||
struct virtio_gpu_resource_detach_backing *cmd_p;
|
||||
struct virtio_gpu_vbuffer *vbuf;
|
||||
|
@ -883,6 +883,12 @@ int virtio_gpu_object_attach(struct virtio_gpu_device *vgdev,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void virtio_gpu_object_detach(struct virtio_gpu_device *vgdev,
|
||||
struct virtio_gpu_object *obj)
|
||||
{
|
||||
virtio_gpu_cmd_resource_inval_backing(vgdev, obj->hw_res_handle);
|
||||
}
|
||||
|
||||
void virtio_gpu_cursor_ping(struct virtio_gpu_device *vgdev,
|
||||
struct virtio_gpu_output *output)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue