Lines Matching refs:vbuf

94 	struct virtio_gpu_vbuffer *vbuf;
96 vbuf = kmem_cache_zalloc(vgdev->vbufs, GFP_KERNEL | __GFP_NOFAIL);
100 vbuf->buf = (void *)vbuf + sizeof(*vbuf);
101 vbuf->size = size;
103 vbuf->resp_cb = resp_cb;
104 vbuf->resp_size = resp_size;
106 vbuf->resp_buf = (void *)vbuf->buf + size;
108 vbuf->resp_buf = resp_buf;
109 BUG_ON(!vbuf->resp_buf);
110 return vbuf;
114 virtio_gpu_vbuf_ctrl_hdr(struct virtio_gpu_vbuffer *vbuf)
116 /* this assumes a vbuf contains a command that starts with a
120 return (struct virtio_gpu_ctrl_hdr *)vbuf->buf;
127 struct virtio_gpu_vbuffer *vbuf;
129 vbuf = virtio_gpu_get_vbuf
132 if (IS_ERR(vbuf)) {
134 return ERR_CAST(vbuf);
136 *vbuffer_p = vbuf;
137 return (struct virtio_gpu_update_cursor *)vbuf->buf;
146 struct virtio_gpu_vbuffer *vbuf;
148 vbuf = virtio_gpu_get_vbuf(vgdev, cmd_size,
150 *vbuffer_p = vbuf;
151 return (struct virtio_gpu_command *)vbuf->buf;
174 struct virtio_gpu_vbuffer *vbuf)
176 if (vbuf->resp_size > MAX_INLINE_RESP_SIZE)
177 kfree(vbuf->resp_buf);
178 kvfree(vbuf->data_buf);
179 kmem_cache_free(vgdev->vbufs, vbuf);
184 struct virtio_gpu_vbuffer *vbuf;
188 while ((vbuf = virtqueue_get_buf(vq, &len))) {
189 list_add_tail(&vbuf->list, reclaim_list);
315 struct virtio_gpu_vbuffer *vbuf,
326 if (fence && vbuf->objs)
327 virtio_gpu_array_unlock_resv(vbuf->objs);
328 free_vbuf(vgdev, vbuf);
345 /* now that the position of the vbuf in the virtqueue is known, we can
349 virtio_gpu_fence_emit(vgdev, virtio_gpu_vbuf_ctrl_hdr(vbuf),
351 if (vbuf->objs) {
352 virtio_gpu_array_add_fence(vbuf->objs, &fence->f);
353 virtio_gpu_array_unlock_resv(vbuf->objs);
357 ret = virtqueue_add_sgs(vq, sgs, outcnt, incnt, vbuf, GFP_ATOMIC);
360 vbuf->seqno = ++vgdev->ctrlq.seqno;
361 trace_virtio_gpu_cmd_queue(vq, virtio_gpu_vbuf_ctrl_hdr(vbuf), vbuf->seqno);
372 struct virtio_gpu_vbuffer *vbuf,
380 sg_init_one(&vcmd, vbuf->buf, vbuf->size);
386 if (vbuf->data_size) {
387 if (is_vmalloc_addr(vbuf->data_buf)) {
389 sgt = vmalloc_to_sgt(vbuf->data_buf, vbuf->data_size,
392 if (fence && vbuf->objs)
393 virtio_gpu_array_unlock_resv(vbuf->objs);
400 sg_init_one(&vout, vbuf->data_buf, vbuf->data_size);
408 if (vbuf->resp_size) {
409 sg_init_one(&vresp, vbuf->resp_buf, vbuf->resp_size);
415 ret = virtio_gpu_queue_ctrl_sgs(vgdev, vbuf, fence, elemcnt, sgs, outcnt,
442 struct virtio_gpu_vbuffer *vbuf)
444 return virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, NULL);
448 struct virtio_gpu_vbuffer *vbuf)
456 free_vbuf(vgdev, vbuf);
460 sg_init_one(&ccmd, vbuf->buf, vbuf->size);
466 ret = virtqueue_add_sgs(vq, sgs, outcnt, 0, vbuf, GFP_ATOMIC);
473 vbuf->seqno = ++vgdev->cursorq.seqno;
475 virtio_gpu_vbuf_ctrl_hdr(vbuf),
476 vbuf->seqno);
501 struct virtio_gpu_vbuffer *vbuf;
503 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
505 vbuf->objs = objs;
513 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
518 struct virtio_gpu_vbuffer *vbuf)
522 bo = vbuf->resp_cb_data;
523 vbuf->resp_cb_data = NULL;
532 struct virtio_gpu_vbuffer *vbuf;
535 cmd_p = virtio_gpu_alloc_cmd_cb(vgdev, &vbuf, sizeof(*cmd_p),
542 vbuf->resp_cb_data = bo;
543 ret = virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
554 struct virtio_gpu_vbuffer *vbuf;
556 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
567 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
578 struct virtio_gpu_vbuffer *vbuf;
580 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
582 vbuf->objs = objs;
591 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
603 struct virtio_gpu_vbuffer *vbuf;
610 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
612 vbuf->objs = objs;
622 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
633 struct virtio_gpu_vbuffer *vbuf;
635 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
642 vbuf->data_buf = ents;
643 vbuf->data_size = sizeof(*ents) * nents;
645 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
649 struct virtio_gpu_vbuffer *vbuf)
652 (struct virtio_gpu_resp_display_info *)vbuf->resp_buf;
678 struct virtio_gpu_vbuffer *vbuf)
681 (struct virtio_gpu_get_capset_info *)vbuf->buf;
683 (struct virtio_gpu_resp_capset_info *)vbuf->resp_buf;
699 struct virtio_gpu_vbuffer *vbuf)
702 (struct virtio_gpu_get_capset *)vbuf->buf;
704 (struct virtio_gpu_resp_capset *)vbuf->resp_buf;
736 struct virtio_gpu_vbuffer *vbuf)
739 (struct virtio_gpu_cmd_get_edid *)vbuf->buf;
741 (struct virtio_gpu_resp_edid *)vbuf->resp_buf;
765 struct virtio_gpu_vbuffer *vbuf;
774 (vgdev, &virtio_gpu_cmd_get_display_info_cb, &vbuf,
781 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
788 struct virtio_gpu_vbuffer *vbuf;
797 (vgdev, &virtio_gpu_cmd_get_capset_info_cb, &vbuf,
804 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
813 struct virtio_gpu_vbuffer *vbuf;
872 (vgdev, &virtio_gpu_cmd_capset_cb, &vbuf, sizeof(*cmd_p),
879 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
887 struct virtio_gpu_vbuffer *vbuf;
901 (vgdev, &virtio_gpu_cmd_get_edid_cb, &vbuf,
906 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
917 struct virtio_gpu_vbuffer *vbuf;
919 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
927 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
934 struct virtio_gpu_vbuffer *vbuf;
936 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
941 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
950 struct virtio_gpu_vbuffer *vbuf;
952 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
954 vbuf->objs = objs;
959 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
968 struct virtio_gpu_vbuffer *vbuf;
970 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
972 vbuf->objs = objs;
977 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
988 struct virtio_gpu_vbuffer *vbuf;
990 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
992 vbuf->objs = objs;
1008 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
1024 struct virtio_gpu_vbuffer *vbuf;
1031 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
1034 vbuf->objs = objs;
1045 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
1059 struct virtio_gpu_vbuffer *vbuf;
1061 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
1064 vbuf->objs = objs;
1075 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
1085 struct virtio_gpu_vbuffer *vbuf;
1087 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
1090 vbuf->data_buf = data;
1091 vbuf->data_size = data_size;
1092 vbuf->objs = objs;
1098 virtio_gpu_queue_fenced_ctrl_buffer(vgdev, vbuf, fence);
1113 struct virtio_gpu_vbuffer *vbuf;
1117 cur_p = virtio_gpu_alloc_cursor(vgdev, &vbuf);
1119 virtio_gpu_queue_cursor(vgdev, vbuf);
1123 struct virtio_gpu_vbuffer *vbuf)
1126 gem_to_virtio_gpu_obj(vbuf->objs->objs[0]);
1128 (struct virtio_gpu_resp_resource_uuid *)vbuf->resp_buf;
1152 struct virtio_gpu_vbuffer *vbuf;
1165 (vgdev, virtio_gpu_cmd_resource_uuid_cb, &vbuf, sizeof(*cmd_p),
1172 vbuf->objs = objs;
1173 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
1178 struct virtio_gpu_vbuffer *vbuf)
1181 gem_to_virtio_gpu_obj(vbuf->objs->objs[0]);
1183 (struct virtio_gpu_resp_map_info *)vbuf->resp_buf;
1205 struct virtio_gpu_vbuffer *vbuf;
1213 (vgdev, virtio_gpu_cmd_resource_map_cb, &vbuf, sizeof(*cmd_p),
1220 vbuf->objs = objs;
1222 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
1230 struct virtio_gpu_vbuffer *vbuf;
1232 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
1238 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
1249 struct virtio_gpu_vbuffer *vbuf;
1251 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
1263 vbuf->data_buf = ents;
1264 vbuf->data_size = sizeof(*ents) * nents;
1266 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);
1279 struct virtio_gpu_vbuffer *vbuf;
1282 cmd_p = virtio_gpu_alloc_cmd(vgdev, &vbuf, sizeof(*cmd_p));
1303 virtio_gpu_queue_ctrl_buffer(vgdev, vbuf);