Lines Matching refs:vgdev

60 	struct virtio_gpu_device *vgdev = dev->dev_private;  in virtio_gpu_ctrl_ack()  local
62 schedule_work(&vgdev->ctrlq.dequeue_work); in virtio_gpu_ctrl_ack()
68 struct virtio_gpu_device *vgdev = dev->dev_private; in virtio_gpu_cursor_ack() local
70 schedule_work(&vgdev->cursorq.dequeue_work); in virtio_gpu_cursor_ack()
73 int virtio_gpu_alloc_vbufs(struct virtio_gpu_device *vgdev) in virtio_gpu_alloc_vbufs() argument
75 vgdev->vbufs = kmem_cache_create("virtio-gpu-vbufs", in virtio_gpu_alloc_vbufs()
79 if (!vgdev->vbufs) in virtio_gpu_alloc_vbufs()
84 void virtio_gpu_free_vbufs(struct virtio_gpu_device *vgdev) in virtio_gpu_free_vbufs() argument
86 kmem_cache_destroy(vgdev->vbufs); in virtio_gpu_free_vbufs()
87 vgdev->vbufs = NULL; in virtio_gpu_free_vbufs()
92 virtio_gpu_panic_get_vbuf(struct virtio_gpu_device *vgdev, int size) in virtio_gpu_panic_get_vbuf() argument
96 vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_ATOMIC); in virtio_gpu_panic_get_vbuf()
107 virtio_gpu_get_vbuf(struct virtio_gpu_device *vgdev, in virtio_gpu_get_vbuf() argument
113 vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_KERNEL | __GFP_NOFAIL); in virtio_gpu_get_vbuf()
141 virtio_gpu_alloc_cursor(struct virtio_gpu_device *vgdev, in virtio_gpu_alloc_cursor() argument
147 (vgdev, sizeof(struct virtio_gpu_update_cursor), in virtio_gpu_alloc_cursor()
158 static void *virtio_gpu_panic_alloc_cmd_resp(struct virtio_gpu_device *vgdev, in virtio_gpu_panic_alloc_cmd_resp() argument
164 vbuf = virtio_gpu_panic_get_vbuf(vgdev, cmd_size); in virtio_gpu_panic_alloc_cmd_resp()
169 static void *virtio_gpu_alloc_cmd_resp(struct virtio_gpu_device *vgdev, in virtio_gpu_alloc_cmd_resp() argument
177 vbuf = virtio_gpu_get_vbuf(vgdev, cmd_size, in virtio_gpu_alloc_cmd_resp()
183 static void *virtio_gpu_alloc_cmd(struct virtio_gpu_device *vgdev, in virtio_gpu_alloc_cmd() argument
187 return virtio_gpu_alloc_cmd_resp(vgdev, NULL, vbuffer_p, size, in virtio_gpu_alloc_cmd()
192 static void *virtio_gpu_alloc_cmd_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_alloc_cmd_cb() argument
197 return virtio_gpu_alloc_cmd_resp(vgdev, cb, vbuffer_p, size, in virtio_gpu_alloc_cmd_cb()
202 static void free_vbuf(struct virtio_gpu_device *vgdev, in free_vbuf() argument
208 kmem_cache_free(vgdev->vbufs, vbuf); in free_vbuf()
227 struct virtio_gpu_device *vgdev = in virtio_gpu_dequeue_ctrl_func() local
236 spin_lock(&vgdev->ctrlq.qlock); in virtio_gpu_dequeue_ctrl_func()
238 virtqueue_disable_cb(vgdev->ctrlq.vq); in virtio_gpu_dequeue_ctrl_func()
239 reclaim_vbufs(vgdev->ctrlq.vq, &reclaim_list); in virtio_gpu_dequeue_ctrl_func()
241 } while (!virtqueue_enable_cb(vgdev->ctrlq.vq)); in virtio_gpu_dequeue_ctrl_func()
242 spin_unlock(&vgdev->ctrlq.qlock); in virtio_gpu_dequeue_ctrl_func()
247 trace_virtio_gpu_cmd_response(vgdev->ctrlq.vq, resp, entry->seqno); in virtio_gpu_dequeue_ctrl_func()
262 virtio_gpu_fence_event_process(vgdev, fence_id); in virtio_gpu_dequeue_ctrl_func()
265 entry->resp_cb(vgdev, entry); in virtio_gpu_dequeue_ctrl_func()
267 wake_up(&vgdev->ctrlq.ack_queue); in virtio_gpu_dequeue_ctrl_func()
271 virtio_gpu_array_put_free_delayed(vgdev, entry->objs); in virtio_gpu_dequeue_ctrl_func()
273 free_vbuf(vgdev, entry); in virtio_gpu_dequeue_ctrl_func()
279 struct virtio_gpu_device *vgdev = in virtio_gpu_dequeue_cursor_func() local
286 spin_lock(&vgdev->cursorq.qlock); in virtio_gpu_dequeue_cursor_func()
288 virtqueue_disable_cb(vgdev->cursorq.vq); in virtio_gpu_dequeue_cursor_func()
289 reclaim_vbufs(vgdev->cursorq.vq, &reclaim_list); in virtio_gpu_dequeue_cursor_func()
290 } while (!virtqueue_enable_cb(vgdev->cursorq.vq)); in virtio_gpu_dequeue_cursor_func()
291 spin_unlock(&vgdev->cursorq.qlock); in virtio_gpu_dequeue_cursor_func()
297 trace_virtio_gpu_cmd_response(vgdev->cursorq.vq, resp, entry->seqno); in virtio_gpu_dequeue_cursor_func()
299 free_vbuf(vgdev, entry); in virtio_gpu_dequeue_cursor_func()
301 wake_up(&vgdev->cursorq.ack_queue); in virtio_gpu_dequeue_cursor_func()
345 static int virtio_gpu_panic_queue_ctrl_sgs(struct virtio_gpu_device *vgdev, in virtio_gpu_panic_queue_ctrl_sgs() argument
352 struct virtqueue *vq = vgdev->ctrlq.vq; in virtio_gpu_panic_queue_ctrl_sgs()
355 if (vgdev->has_indirect) in virtio_gpu_panic_queue_ctrl_sgs()
364 vbuf->seqno = ++vgdev->ctrlq.seqno; in virtio_gpu_panic_queue_ctrl_sgs()
367 atomic_inc(&vgdev->pending_commands); in virtio_gpu_panic_queue_ctrl_sgs()
372 static int virtio_gpu_queue_ctrl_sgs(struct virtio_gpu_device *vgdev, in virtio_gpu_queue_ctrl_sgs() argument
380 struct virtqueue *vq = vgdev->ctrlq.vq; in virtio_gpu_queue_ctrl_sgs()
383 if (!drm_dev_enter(vgdev->ddev, &idx)) { in virtio_gpu_queue_ctrl_sgs()
386 free_vbuf(vgdev, vbuf); in virtio_gpu_queue_ctrl_sgs()
390 if (vgdev->has_indirect) in virtio_gpu_queue_ctrl_sgs()
394 spin_lock(&vgdev->ctrlq.qlock); in virtio_gpu_queue_ctrl_sgs()
397 spin_unlock(&vgdev->ctrlq.qlock); in virtio_gpu_queue_ctrl_sgs()
398 virtio_gpu_notify(vgdev); in virtio_gpu_queue_ctrl_sgs()
399 wait_event(vgdev->ctrlq.ack_queue, vq->num_free >= elemcnt); in virtio_gpu_queue_ctrl_sgs()
407 virtio_gpu_fence_emit(vgdev, virtio_gpu_vbuf_ctrl_hdr(vbuf), in virtio_gpu_queue_ctrl_sgs()
418 vbuf->seqno = ++vgdev->ctrlq.seqno; in virtio_gpu_queue_ctrl_sgs()
421 atomic_inc(&vgdev->pending_commands); in virtio_gpu_queue_ctrl_sgs()
423 spin_unlock(&vgdev->ctrlq.qlock); in virtio_gpu_queue_ctrl_sgs()
430 static int virtio_gpu_panic_queue_ctrl_buffer(struct virtio_gpu_device *vgdev, in virtio_gpu_panic_queue_ctrl_buffer() argument
450 return virtio_gpu_panic_queue_ctrl_sgs(vgdev, vbuf, in virtio_gpu_panic_queue_ctrl_buffer()
455 static int virtio_gpu_queue_fenced_ctrl_buffer(struct virtio_gpu_device *vgdev, in virtio_gpu_queue_fenced_ctrl_buffer() argument
500 ret = virtio_gpu_queue_ctrl_sgs(vgdev, vbuf, fence, elemcnt, sgs, outcnt, in virtio_gpu_queue_fenced_ctrl_buffer()
511 void virtio_gpu_panic_notify(struct virtio_gpu_device *vgdev) in virtio_gpu_panic_notify() argument
515 if (!atomic_read(&vgdev->pending_commands)) in virtio_gpu_panic_notify()
518 atomic_set(&vgdev->pending_commands, 0); in virtio_gpu_panic_notify()
519 notify = virtqueue_kick_prepare(vgdev->ctrlq.vq); in virtio_gpu_panic_notify()
522 virtqueue_notify(vgdev->ctrlq.vq); in virtio_gpu_panic_notify()
525 void virtio_gpu_notify(struct virtio_gpu_device *vgdev) in virtio_gpu_notify() argument
529 if (!atomic_read(&vgdev->pending_commands)) in virtio_gpu_notify()
532 spin_lock(&vgdev->ctrlq.qlock); in virtio_gpu_notify()
533 atomic_set(&vgdev->pending_commands, 0); in virtio_gpu_notify()
534 notify = virtqueue_kick_prepare(vgdev->ctrlq.vq); in virtio_gpu_notify()
535 spin_unlock(&vgdev->ctrlq.qlock); in virtio_gpu_notify()
538 virtqueue_notify(vgdev->ctrlq.vq); in virtio_gpu_notify()
541 static int virtio_gpu_queue_ctrl_buffer(struct virtio_gpu_device *vgdev, in virtio_gpu_queue_ctrl_buffer() argument
544 return virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, NULL); in virtio_gpu_queue_ctrl_buffer()
547 static void virtio_gpu_queue_cursor(struct virtio_gpu_device *vgdev, in virtio_gpu_queue_cursor() argument
550 struct virtqueue *vq = vgdev->cursorq.vq; in virtio_gpu_queue_cursor()
555 if (!drm_dev_enter(vgdev->ddev, &idx)) { in virtio_gpu_queue_cursor()
556 free_vbuf(vgdev, vbuf); in virtio_gpu_queue_cursor()
564 spin_lock(&vgdev->cursorq.qlock); in virtio_gpu_queue_cursor()
568 spin_unlock(&vgdev->cursorq.qlock); in virtio_gpu_queue_cursor()
569 wait_event(vgdev->cursorq.ack_queue, vq->num_free >= outcnt); in virtio_gpu_queue_cursor()
570 spin_lock(&vgdev->cursorq.qlock); in virtio_gpu_queue_cursor()
573 vbuf->seqno = ++vgdev->cursorq.seqno; in virtio_gpu_queue_cursor()
581 spin_unlock(&vgdev->cursorq.qlock); in virtio_gpu_queue_cursor()
594 void virtio_gpu_cmd_create_resource(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_create_resource() argument
603 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_create_resource()
613 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_create_resource()
617 static void virtio_gpu_cmd_unref_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_unref_cb() argument
628 void virtio_gpu_cmd_unref_resource(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_unref_resource() argument
635 cmd_p = virtio_gpu_alloc_cmd_cb(vgdev, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_unref_resource()
643 ret = virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_unref_resource()
648 void virtio_gpu_cmd_set_scanout(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_set_scanout() argument
656 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_set_scanout()
667 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_set_scanout()
671 void virtio_gpu_panic_cmd_resource_flush(struct virtio_gpu_device *vgdev, in virtio_gpu_panic_cmd_resource_flush() argument
679 cmd_p = virtio_gpu_panic_alloc_cmd_resp(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_panic_cmd_resource_flush()
690 virtio_gpu_panic_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_panic_cmd_resource_flush()
693 void virtio_gpu_cmd_resource_flush(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_flush() argument
703 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_flush()
714 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_flush()
718 int virtio_gpu_panic_cmd_transfer_to_host_2d(struct virtio_gpu_device *vgdev, in virtio_gpu_panic_cmd_transfer_to_host_2d() argument
727 bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); in virtio_gpu_panic_cmd_transfer_to_host_2d()
730 dma_sync_sgtable_for_device(vgdev->vdev->dev.parent, in virtio_gpu_panic_cmd_transfer_to_host_2d()
733 cmd_p = virtio_gpu_panic_alloc_cmd_resp(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_panic_cmd_transfer_to_host_2d()
745 return virtio_gpu_panic_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_panic_cmd_transfer_to_host_2d()
748 void virtio_gpu_cmd_transfer_to_host_2d(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_transfer_to_host_2d() argument
758 bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); in virtio_gpu_cmd_transfer_to_host_2d()
761 dma_sync_sgtable_for_device(vgdev->vdev->dev.parent, in virtio_gpu_cmd_transfer_to_host_2d()
764 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_transfer_to_host_2d()
776 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_transfer_to_host_2d()
780 virtio_gpu_cmd_resource_attach_backing(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_attach_backing() argument
789 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_attach_backing()
799 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_attach_backing()
803 virtio_gpu_cmd_resource_detach_backing(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_detach_backing() argument
810 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_detach_backing()
816 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_detach_backing()
819 static void virtio_gpu_cmd_get_display_info_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_get_display_info_cb() argument
826 spin_lock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_display_info_cb()
827 for (i = 0; i < vgdev->num_scanouts; i++) { in virtio_gpu_cmd_get_display_info_cb()
828 vgdev->outputs[i].info = resp->pmodes[i]; in virtio_gpu_cmd_get_display_info_cb()
840 vgdev->display_info_pending = false; in virtio_gpu_cmd_get_display_info_cb()
841 spin_unlock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_display_info_cb()
842 wake_up(&vgdev->resp_wq); in virtio_gpu_cmd_get_display_info_cb()
844 if (!drm_helper_hpd_irq_event(vgdev->ddev)) in virtio_gpu_cmd_get_display_info_cb()
845 drm_kms_helper_hotplug_event(vgdev->ddev); in virtio_gpu_cmd_get_display_info_cb()
848 static void virtio_gpu_cmd_get_capset_info_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_get_capset_info_cb() argument
857 spin_lock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_capset_info_cb()
858 if (vgdev->capsets) { in virtio_gpu_cmd_get_capset_info_cb()
859 vgdev->capsets[i].id = le32_to_cpu(resp->capset_id); in virtio_gpu_cmd_get_capset_info_cb()
860 vgdev->capsets[i].max_version = le32_to_cpu(resp->capset_max_version); in virtio_gpu_cmd_get_capset_info_cb()
861 vgdev->capsets[i].max_size = le32_to_cpu(resp->capset_max_size); in virtio_gpu_cmd_get_capset_info_cb()
865 spin_unlock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_capset_info_cb()
866 wake_up(&vgdev->resp_wq); in virtio_gpu_cmd_get_capset_info_cb()
869 static void virtio_gpu_cmd_capset_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_capset_cb() argument
878 spin_lock(&vgdev->display_info_lock); in virtio_gpu_cmd_capset_cb()
879 list_for_each_entry(cache_ent, &vgdev->cap_cache, head) { in virtio_gpu_cmd_capset_cb()
890 spin_unlock(&vgdev->display_info_lock); in virtio_gpu_cmd_capset_cb()
891 wake_up_all(&vgdev->resp_wq); in virtio_gpu_cmd_capset_cb()
906 static void virtio_gpu_cmd_get_edid_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_get_edid_cb() argument
917 if (scanout >= vgdev->num_scanouts) in virtio_gpu_cmd_get_edid_cb()
919 output = vgdev->outputs + scanout; in virtio_gpu_cmd_get_edid_cb()
924 spin_lock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_edid_cb()
927 spin_unlock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_edid_cb()
930 wake_up(&vgdev->resp_wq); in virtio_gpu_cmd_get_edid_cb()
933 int virtio_gpu_cmd_get_display_info(struct virtio_gpu_device *vgdev) in virtio_gpu_cmd_get_display_info() argument
944 (vgdev, &virtio_gpu_cmd_get_display_info_cb, &vbuf, in virtio_gpu_cmd_get_display_info()
949 vgdev->display_info_pending = true; in virtio_gpu_cmd_get_display_info()
951 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_display_info()
955 int virtio_gpu_cmd_get_capset_info(struct virtio_gpu_device *vgdev, int idx) in virtio_gpu_cmd_get_capset_info() argument
966 (vgdev, &virtio_gpu_cmd_get_capset_info_cb, &vbuf, in virtio_gpu_cmd_get_capset_info()
973 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_capset_info()
977 int virtio_gpu_cmd_get_capset(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_get_capset() argument
990 if (idx >= vgdev->num_capsets) in virtio_gpu_cmd_get_capset()
993 if (version > vgdev->capsets[idx].max_version) in virtio_gpu_cmd_get_capset()
1000 max_size = vgdev->capsets[idx].max_size; in virtio_gpu_cmd_get_capset()
1016 cache_ent->id = vgdev->capsets[idx].id; in virtio_gpu_cmd_get_capset()
1019 spin_lock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_capset()
1021 list_for_each_entry(search_ent, &vgdev->cap_cache, head) { in virtio_gpu_cmd_get_capset()
1022 if (search_ent->id == vgdev->capsets[idx].id && in virtio_gpu_cmd_get_capset()
1029 list_add_tail(&cache_ent->head, &vgdev->cap_cache); in virtio_gpu_cmd_get_capset()
1030 spin_unlock(&vgdev->display_info_lock); in virtio_gpu_cmd_get_capset()
1041 (vgdev, &virtio_gpu_cmd_capset_cb, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_get_capset()
1045 cmd_p->capset_id = cpu_to_le32(vgdev->capsets[idx].id); in virtio_gpu_cmd_get_capset()
1048 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_capset()
1053 int virtio_gpu_cmd_get_edids(struct virtio_gpu_device *vgdev) in virtio_gpu_cmd_get_edids() argument
1060 if (WARN_ON(!vgdev->has_edid)) in virtio_gpu_cmd_get_edids()
1063 for (scanout = 0; scanout < vgdev->num_scanouts; scanout++) { in virtio_gpu_cmd_get_edids()
1069 (vgdev, &virtio_gpu_cmd_get_edid_cb, &vbuf, in virtio_gpu_cmd_get_edids()
1074 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_edids()
1080 void virtio_gpu_cmd_context_create(struct virtio_gpu_device *vgdev, uint32_t id, in virtio_gpu_cmd_context_create() argument
1087 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_context_create()
1095 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_context_create()
1098 void virtio_gpu_cmd_context_destroy(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_context_destroy() argument
1104 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_context_destroy()
1109 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_context_destroy()
1112 void virtio_gpu_cmd_context_attach_resource(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_context_attach_resource() argument
1120 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_context_attach_resource()
1127 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_context_attach_resource()
1130 void virtio_gpu_cmd_context_detach_resource(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_context_detach_resource() argument
1138 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_context_detach_resource()
1145 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_context_detach_resource()
1149 virtio_gpu_cmd_resource_create_3d(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_create_3d() argument
1158 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_create_3d()
1176 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_create_3d()
1181 void virtio_gpu_cmd_transfer_to_host_3d(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_transfer_to_host_3d() argument
1193 bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); in virtio_gpu_cmd_transfer_to_host_3d()
1196 dma_sync_sgtable_for_device(vgdev->vdev->dev.parent, in virtio_gpu_cmd_transfer_to_host_3d()
1199 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_transfer_to_host_3d()
1213 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_transfer_to_host_3d()
1216 void virtio_gpu_cmd_transfer_from_host_3d(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_transfer_from_host_3d() argument
1229 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_transfer_from_host_3d()
1243 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_transfer_from_host_3d()
1246 void virtio_gpu_cmd_submit(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_submit() argument
1255 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_submit()
1266 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_submit()
1269 void virtio_gpu_object_attach(struct virtio_gpu_device *vgdev, in virtio_gpu_object_attach() argument
1277 virtio_gpu_cmd_resource_attach_backing(vgdev, obj->hw_res_handle, in virtio_gpu_object_attach()
1283 void virtio_gpu_object_detach(struct virtio_gpu_device *vgdev, in virtio_gpu_object_detach() argument
1290 virtio_gpu_cmd_resource_detach_backing(vgdev, obj->hw_res_handle, in virtio_gpu_object_detach()
1296 void virtio_gpu_cursor_ping(struct virtio_gpu_device *vgdev, in virtio_gpu_cursor_ping() argument
1303 cur_p = virtio_gpu_alloc_cursor(vgdev, &vbuf); in virtio_gpu_cursor_ping()
1305 virtio_gpu_queue_cursor(vgdev, vbuf); in virtio_gpu_cursor_ping()
1308 static void virtio_gpu_cmd_resource_uuid_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_uuid_cb() argument
1317 spin_lock(&vgdev->resource_export_lock); in virtio_gpu_cmd_resource_uuid_cb()
1327 spin_unlock(&vgdev->resource_export_lock); in virtio_gpu_cmd_resource_uuid_cb()
1329 wake_up_all(&vgdev->resp_wq); in virtio_gpu_cmd_resource_uuid_cb()
1333 virtio_gpu_cmd_resource_assign_uuid(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_assign_uuid() argument
1343 spin_lock(&vgdev->resource_export_lock); in virtio_gpu_cmd_resource_assign_uuid()
1345 spin_unlock(&vgdev->resource_export_lock); in virtio_gpu_cmd_resource_assign_uuid()
1351 (vgdev, virtio_gpu_cmd_resource_uuid_cb, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_resource_assign_uuid()
1359 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_resource_assign_uuid()
1363 static void virtio_gpu_cmd_resource_map_cb(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_map_cb() argument
1373 spin_lock(&vgdev->host_visible_lock); in virtio_gpu_cmd_resource_map_cb()
1382 spin_unlock(&vgdev->host_visible_lock); in virtio_gpu_cmd_resource_map_cb()
1383 wake_up_all(&vgdev->resp_wq); in virtio_gpu_cmd_resource_map_cb()
1386 int virtio_gpu_cmd_map(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_map() argument
1399 (vgdev, virtio_gpu_cmd_resource_map_cb, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_map()
1408 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_map()
1412 void virtio_gpu_cmd_unmap(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_unmap() argument
1418 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_unmap()
1424 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_unmap()
1428 virtio_gpu_cmd_resource_create_blob(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_resource_create_blob() argument
1437 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_create_blob()
1452 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_resource_create_blob()
1459 void virtio_gpu_cmd_set_scanout_blob(struct virtio_gpu_device *vgdev, in virtio_gpu_cmd_set_scanout_blob() argument
1471 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_set_scanout_blob()
1492 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_set_scanout_blob()