Lines Matching refs:vbuf
93 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_panic_get_vbuf() local
95 vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_ATOMIC); in virtio_gpu_panic_get_vbuf()
97 vbuf->buf = (void *)vbuf + sizeof(*vbuf); in virtio_gpu_panic_get_vbuf()
98 vbuf->size = size; in virtio_gpu_panic_get_vbuf()
99 vbuf->resp_cb = NULL; in virtio_gpu_panic_get_vbuf()
100 vbuf->resp_size = sizeof(struct virtio_gpu_ctrl_hdr); in virtio_gpu_panic_get_vbuf()
101 vbuf->resp_buf = (void *)vbuf->buf + size; in virtio_gpu_panic_get_vbuf()
102 return vbuf; in virtio_gpu_panic_get_vbuf()
110 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_get_vbuf() local
112 vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_KERNEL | __GFP_NOFAIL); in virtio_gpu_get_vbuf()
116 vbuf->buf = (void *)vbuf + sizeof(*vbuf); in virtio_gpu_get_vbuf()
117 vbuf->size = size; in virtio_gpu_get_vbuf()
119 vbuf->resp_cb = resp_cb; in virtio_gpu_get_vbuf()
120 vbuf->resp_size = resp_size; in virtio_gpu_get_vbuf()
122 vbuf->resp_buf = (void *)vbuf->buf + size; in virtio_gpu_get_vbuf()
124 vbuf->resp_buf = resp_buf; in virtio_gpu_get_vbuf()
125 BUG_ON(!vbuf->resp_buf); in virtio_gpu_get_vbuf()
126 return vbuf; in virtio_gpu_get_vbuf()
130 virtio_gpu_vbuf_ctrl_hdr(struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_vbuf_ctrl_hdr() argument
136 return (struct virtio_gpu_ctrl_hdr *)vbuf->buf; in virtio_gpu_vbuf_ctrl_hdr()
143 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_alloc_cursor() local
145 vbuf = virtio_gpu_get_vbuf in virtio_gpu_alloc_cursor()
148 if (IS_ERR(vbuf)) { in virtio_gpu_alloc_cursor()
150 return ERR_CAST(vbuf); in virtio_gpu_alloc_cursor()
152 *vbuffer_p = vbuf; in virtio_gpu_alloc_cursor()
153 return (struct virtio_gpu_update_cursor *)vbuf->buf; in virtio_gpu_alloc_cursor()
161 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_panic_alloc_cmd_resp() local
163 vbuf = virtio_gpu_panic_get_vbuf(vgdev, cmd_size); in virtio_gpu_panic_alloc_cmd_resp()
164 *vbuffer_p = vbuf; in virtio_gpu_panic_alloc_cmd_resp()
165 return (struct virtio_gpu_command *)vbuf->buf; in virtio_gpu_panic_alloc_cmd_resp()
174 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_alloc_cmd_resp() local
176 vbuf = virtio_gpu_get_vbuf(vgdev, cmd_size, in virtio_gpu_alloc_cmd_resp()
178 *vbuffer_p = vbuf; in virtio_gpu_alloc_cmd_resp()
179 return (struct virtio_gpu_command *)vbuf->buf; in virtio_gpu_alloc_cmd_resp()
202 struct virtio_gpu_vbuffer *vbuf) in free_vbuf() argument
204 if (vbuf->resp_size > MAX_INLINE_RESP_SIZE) in free_vbuf()
205 kfree(vbuf->resp_buf); in free_vbuf()
206 kvfree(vbuf->data_buf); in free_vbuf()
207 kmem_cache_free(vgdev->vbufs, vbuf); in free_vbuf()
212 struct virtio_gpu_vbuffer *vbuf; in reclaim_vbufs() local
216 while ((vbuf = virtqueue_get_buf(vq, &len))) { in reclaim_vbufs()
217 list_add_tail(&vbuf->list, reclaim_list); in reclaim_vbufs()
344 struct virtio_gpu_vbuffer *vbuf, in virtio_gpu_panic_queue_ctrl_sgs() argument
359 ret = virtqueue_add_sgs(vq, sgs, outcnt, incnt, vbuf, GFP_ATOMIC); in virtio_gpu_panic_queue_ctrl_sgs()
362 vbuf->seqno = ++vgdev->ctrlq.seqno; in virtio_gpu_panic_queue_ctrl_sgs()
363 trace_virtio_gpu_cmd_queue(vq, virtio_gpu_vbuf_ctrl_hdr(vbuf), vbuf->seqno); in virtio_gpu_panic_queue_ctrl_sgs()
371 struct virtio_gpu_vbuffer *vbuf, in virtio_gpu_queue_ctrl_sgs() argument
382 if (fence && vbuf->objs) in virtio_gpu_queue_ctrl_sgs()
383 virtio_gpu_array_unlock_resv(vbuf->objs); in virtio_gpu_queue_ctrl_sgs()
384 free_vbuf(vgdev, vbuf); in virtio_gpu_queue_ctrl_sgs()
405 virtio_gpu_fence_emit(vgdev, virtio_gpu_vbuf_ctrl_hdr(vbuf), in virtio_gpu_queue_ctrl_sgs()
407 if (vbuf->objs) { in virtio_gpu_queue_ctrl_sgs()
408 virtio_gpu_array_add_fence(vbuf->objs, &fence->f); in virtio_gpu_queue_ctrl_sgs()
409 virtio_gpu_array_unlock_resv(vbuf->objs); in virtio_gpu_queue_ctrl_sgs()
413 ret = virtqueue_add_sgs(vq, sgs, outcnt, incnt, vbuf, GFP_ATOMIC); in virtio_gpu_queue_ctrl_sgs()
416 vbuf->seqno = ++vgdev->ctrlq.seqno; in virtio_gpu_queue_ctrl_sgs()
417 trace_virtio_gpu_cmd_queue(vq, virtio_gpu_vbuf_ctrl_hdr(vbuf), vbuf->seqno); in virtio_gpu_queue_ctrl_sgs()
429 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_panic_queue_ctrl_buffer() argument
435 sg_init_one(&vcmd, vbuf->buf, vbuf->size); in virtio_gpu_panic_queue_ctrl_buffer()
441 if (vbuf->resp_size) { in virtio_gpu_panic_queue_ctrl_buffer()
442 sg_init_one(&vresp, vbuf->resp_buf, vbuf->resp_size); in virtio_gpu_panic_queue_ctrl_buffer()
448 return virtio_gpu_panic_queue_ctrl_sgs(vgdev, vbuf, in virtio_gpu_panic_queue_ctrl_buffer()
454 struct virtio_gpu_vbuffer *vbuf, in virtio_gpu_queue_fenced_ctrl_buffer() argument
462 sg_init_one(&vcmd, vbuf->buf, vbuf->size); in virtio_gpu_queue_fenced_ctrl_buffer()
468 if (vbuf->data_size) { in virtio_gpu_queue_fenced_ctrl_buffer()
469 if (is_vmalloc_addr(vbuf->data_buf)) { in virtio_gpu_queue_fenced_ctrl_buffer()
471 sgt = vmalloc_to_sgt(vbuf->data_buf, vbuf->data_size, in virtio_gpu_queue_fenced_ctrl_buffer()
474 if (fence && vbuf->objs) in virtio_gpu_queue_fenced_ctrl_buffer()
475 virtio_gpu_array_unlock_resv(vbuf->objs); in virtio_gpu_queue_fenced_ctrl_buffer()
482 sg_init_one(&vout, vbuf->data_buf, vbuf->data_size); in virtio_gpu_queue_fenced_ctrl_buffer()
490 if (vbuf->resp_size) { in virtio_gpu_queue_fenced_ctrl_buffer()
491 sg_init_one(&vresp, vbuf->resp_buf, vbuf->resp_size); in virtio_gpu_queue_fenced_ctrl_buffer()
497 ret = virtio_gpu_queue_ctrl_sgs(vgdev, vbuf, fence, elemcnt, sgs, outcnt, in virtio_gpu_queue_fenced_ctrl_buffer()
539 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_queue_ctrl_buffer() argument
541 return virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, NULL); in virtio_gpu_queue_ctrl_buffer()
545 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_queue_cursor() argument
553 free_vbuf(vgdev, vbuf); in virtio_gpu_queue_cursor()
557 sg_init_one(&ccmd, vbuf->buf, vbuf->size); in virtio_gpu_queue_cursor()
563 ret = virtqueue_add_sgs(vq, sgs, outcnt, 0, vbuf, GFP_ATOMIC); in virtio_gpu_queue_cursor()
570 vbuf->seqno = ++vgdev->cursorq.seqno; in virtio_gpu_queue_cursor()
572 virtio_gpu_vbuf_ctrl_hdr(vbuf), in virtio_gpu_queue_cursor()
573 vbuf->seqno); in virtio_gpu_queue_cursor()
598 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_create_resource() local
600 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_create_resource()
602 vbuf->objs = objs; in virtio_gpu_cmd_create_resource()
610 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_create_resource()
615 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_unref_cb() argument
619 bo = vbuf->resp_cb_data; in virtio_gpu_cmd_unref_cb()
620 vbuf->resp_cb_data = NULL; in virtio_gpu_cmd_unref_cb()
629 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_unref_resource() local
632 cmd_p = virtio_gpu_alloc_cmd_cb(vgdev, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_unref_resource()
639 vbuf->resp_cb_data = bo; in virtio_gpu_cmd_unref_resource()
640 ret = virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_unref_resource()
651 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_set_scanout() local
653 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_set_scanout()
664 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_set_scanout()
674 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_panic_cmd_resource_flush() local
676 cmd_p = virtio_gpu_panic_alloc_cmd_resp(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_panic_cmd_resource_flush()
678 vbuf->objs = NULL; in virtio_gpu_panic_cmd_resource_flush()
687 virtio_gpu_panic_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_panic_cmd_resource_flush()
698 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_resource_flush() local
700 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_flush()
702 vbuf->objs = objs; in virtio_gpu_cmd_resource_flush()
711 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_flush()
723 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_panic_cmd_transfer_to_host_2d() local
730 cmd_p = virtio_gpu_panic_alloc_cmd_resp(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_panic_cmd_transfer_to_host_2d()
732 vbuf->objs = objs; in virtio_gpu_panic_cmd_transfer_to_host_2d()
742 return virtio_gpu_panic_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_panic_cmd_transfer_to_host_2d()
754 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_transfer_to_host_2d() local
761 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_transfer_to_host_2d()
763 vbuf->objs = objs; in virtio_gpu_cmd_transfer_to_host_2d()
773 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_transfer_to_host_2d()
784 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_resource_attach_backing() local
786 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_attach_backing()
793 vbuf->data_buf = ents; in virtio_gpu_cmd_resource_attach_backing()
794 vbuf->data_size = sizeof(*ents) * nents; in virtio_gpu_cmd_resource_attach_backing()
796 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_attach_backing()
805 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_resource_detach_backing() local
807 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_detach_backing()
813 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_detach_backing()
817 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_get_display_info_cb() argument
820 (struct virtio_gpu_resp_display_info *)vbuf->resp_buf; in virtio_gpu_cmd_get_display_info_cb()
846 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_get_capset_info_cb() argument
849 (struct virtio_gpu_get_capset_info *)vbuf->buf; in virtio_gpu_cmd_get_capset_info_cb()
851 (struct virtio_gpu_resp_capset_info *)vbuf->resp_buf; in virtio_gpu_cmd_get_capset_info_cb()
867 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_capset_cb() argument
870 (struct virtio_gpu_get_capset *)vbuf->buf; in virtio_gpu_cmd_capset_cb()
872 (struct virtio_gpu_resp_capset *)vbuf->resp_buf; in virtio_gpu_cmd_capset_cb()
904 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_get_edid_cb() argument
907 (struct virtio_gpu_cmd_get_edid *)vbuf->buf; in virtio_gpu_cmd_get_edid_cb()
909 (struct virtio_gpu_resp_edid *)vbuf->resp_buf; in virtio_gpu_cmd_get_edid_cb()
933 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_get_display_info() local
942 (vgdev, &virtio_gpu_cmd_get_display_info_cb, &vbuf, in virtio_gpu_cmd_get_display_info()
949 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_display_info()
956 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_get_capset_info() local
965 (vgdev, &virtio_gpu_cmd_get_capset_info_cb, &vbuf, in virtio_gpu_cmd_get_capset_info()
972 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_capset_info()
981 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_get_capset() local
1040 (vgdev, &virtio_gpu_cmd_capset_cb, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_get_capset()
1047 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_get_capset()
1055 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_get_edids() local
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()
1085 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_context_create() local
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()
1102 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_context_destroy() local
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()
1118 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_context_attach_resource() local
1120 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_context_attach_resource()
1122 vbuf->objs = objs; in virtio_gpu_cmd_context_attach_resource()
1127 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_context_attach_resource()
1136 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_context_detach_resource() local
1138 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_context_detach_resource()
1140 vbuf->objs = objs; in virtio_gpu_cmd_context_detach_resource()
1145 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_context_detach_resource()
1156 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_resource_create_3d() local
1158 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_create_3d()
1160 vbuf->objs = objs; in virtio_gpu_cmd_resource_create_3d()
1176 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_resource_create_3d()
1192 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_transfer_to_host_3d() local
1199 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_transfer_to_host_3d()
1202 vbuf->objs = objs; 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()
1227 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_transfer_from_host_3d() local
1229 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_transfer_from_host_3d()
1232 vbuf->objs = objs; 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()
1253 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_submit() local
1255 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_submit()
1258 vbuf->data_buf = data; in virtio_gpu_cmd_submit()
1259 vbuf->data_size = data_size; in virtio_gpu_cmd_submit()
1260 vbuf->objs = objs; in virtio_gpu_cmd_submit()
1266 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence); in virtio_gpu_cmd_submit()
1299 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cursor_ping() local
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()
1309 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_resource_uuid_cb() argument
1312 gem_to_virtio_gpu_obj(vbuf->objs->objs[0]); in virtio_gpu_cmd_resource_uuid_cb()
1314 (struct virtio_gpu_resp_resource_uuid *)vbuf->resp_buf; in virtio_gpu_cmd_resource_uuid_cb()
1338 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_resource_assign_uuid() local
1351 (vgdev, virtio_gpu_cmd_resource_uuid_cb, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_resource_assign_uuid()
1358 vbuf->objs = objs; in virtio_gpu_cmd_resource_assign_uuid()
1359 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_resource_assign_uuid()
1364 struct virtio_gpu_vbuffer *vbuf) in virtio_gpu_cmd_resource_map_cb() argument
1367 gem_to_virtio_gpu_obj(vbuf->objs->objs[0]); in virtio_gpu_cmd_resource_map_cb()
1369 (struct virtio_gpu_resp_map_info *)vbuf->resp_buf; in virtio_gpu_cmd_resource_map_cb()
1391 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_map() local
1399 (vgdev, virtio_gpu_cmd_resource_map_cb, &vbuf, sizeof(*cmd_p), in virtio_gpu_cmd_map()
1406 vbuf->objs = objs; in virtio_gpu_cmd_map()
1408 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_map()
1416 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_unmap() local
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()
1435 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_resource_create_blob() local
1437 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p)); in virtio_gpu_cmd_resource_create_blob()
1449 vbuf->data_buf = ents; in virtio_gpu_cmd_resource_create_blob()
1450 vbuf->data_size = sizeof(*ents) * nents; in virtio_gpu_cmd_resource_create_blob()
1452 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf); in virtio_gpu_cmd_resource_create_blob()
1468 struct virtio_gpu_vbuffer *vbuf; in virtio_gpu_cmd_set_scanout_blob() local
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()