drm/virtio: add virtio_gpu_object_detach() function
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 29 Aug 2018 12:20:25 +0000 (14:20 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 5 Sep 2018 06:26:25 +0000 (08:26 +0200)
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
drivers/gpu/drm/virtio/virtgpu_drv.h
drivers/gpu/drm/virtio/virtgpu_fb.c
drivers/gpu/drm/virtio/virtgpu_ttm.c
drivers/gpu/drm/virtio/virtgpu_vq.c

index b6b5768773e628fdda54e1bc7f9d79907d5ef278..4fda0da6d949cd6cced235c5aa9fbede7c4802cd 100644 (file)
@@ -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,
index a121b1c79522fbf37dd79f51b0f2006bbfc517de..b5cebc9a179a94da98d4563ca89978f54d7cfc51 100644 (file)
@@ -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);
index b6f021c0da5c877a62e569821a8c12abc0bf5ece..e3152d45c5f12c609defd3ddae25d793465d1ba9 100644 (file)
@@ -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) {
index 4735bd1c7321cbfd70e8dc402c31074e1ee9684a..e23c1927722f8ae8a0f2d1c944833ff990ecebd1 100644 (file)
@@ -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)
 {