Lines Matching refs:dmabuf_obj

152 	struct intel_vgpu_dmabuf_obj *dmabuf_obj;
156 dmabuf_obj = container_of(pos,
158 if (dmabuf_obj == obj) {
161 dmabuf_obj->dmabuf_id);
162 kfree(dmabuf_obj->info);
163 kfree(dmabuf_obj);
360 struct intel_vgpu_dmabuf_obj *dmabuf_obj = NULL;
364 dmabuf_obj = container_of(pos, struct intel_vgpu_dmabuf_obj,
366 if ((dmabuf_obj == NULL) ||
367 (dmabuf_obj->info == NULL))
370 fb_info = (struct intel_vgpu_fb_info *)dmabuf_obj->info;
378 ret = dmabuf_obj;
390 struct intel_vgpu_dmabuf_obj *dmabuf_obj = NULL;
394 dmabuf_obj = container_of(pos, struct intel_vgpu_dmabuf_obj,
396 if (!dmabuf_obj)
399 if (dmabuf_obj->dmabuf_id == id) {
400 ret = dmabuf_obj;
427 struct intel_vgpu_dmabuf_obj *dmabuf_obj;
444 /* If exists, pick up the exposed dmabuf_obj */
445 dmabuf_obj = pick_dmabuf_by_info(vgpu, &fb_info);
446 if (dmabuf_obj) {
448 gfx_plane_info->dmabuf_id = dmabuf_obj->dmabuf_id;
454 if (!dmabuf_obj->initref) {
455 dmabuf_obj->initref = true;
456 dmabuf_obj_get(dmabuf_obj);
459 gvt_dbg_dpy("vgpu%d: re-use dmabuf_obj ref %d, id %d\n",
460 vgpu->id, kref_read(&dmabuf_obj->kref),
469 dmabuf_obj = kmalloc(sizeof(struct intel_vgpu_dmabuf_obj), GFP_KERNEL);
470 if (unlikely(!dmabuf_obj)) {
471 gvt_vgpu_err("alloc dmabuf_obj failed\n");
476 dmabuf_obj->info = kmalloc(sizeof(struct intel_vgpu_fb_info),
478 if (unlikely(!dmabuf_obj->info)) {
483 memcpy(dmabuf_obj->info, &fb_info, sizeof(struct intel_vgpu_fb_info));
485 ((struct intel_vgpu_fb_info *)dmabuf_obj->info)->obj = dmabuf_obj;
487 dmabuf_obj->vgpu = vgpu;
490 ret = idr_alloc(&vgpu->object_idr, dmabuf_obj, 1, 0, GFP_NOWAIT);
495 dmabuf_obj->dmabuf_id = ret;
497 dmabuf_obj->initref = true;
499 kref_init(&dmabuf_obj->kref);
511 INIT_LIST_HEAD(&dmabuf_obj->list);
513 list_add_tail(&dmabuf_obj->list, &vgpu->dmabuf_obj_list_head);
516 gvt_dbg_dpy("vgpu%d: %s new dmabuf_obj ref %d, id %d\n", vgpu->id,
517 __func__, kref_read(&dmabuf_obj->kref), ret);
522 kfree(dmabuf_obj->info);
524 kfree(dmabuf_obj);
530 /* To associate an exposed dmabuf with the dmabuf_obj */
534 struct intel_vgpu_dmabuf_obj *dmabuf_obj;
542 dmabuf_obj = pick_dmabuf_by_num(vgpu, dmabuf_id);
543 if (dmabuf_obj == NULL) {
549 obj = vgpu_create_gem(dev, dmabuf_obj->info);
556 obj->gvt_info = dmabuf_obj->info;
572 dmabuf_obj_get(dmabuf_obj);
574 if (dmabuf_obj->initref) {
575 dmabuf_obj->initref = false;
576 dmabuf_obj_put(dmabuf_obj);
583 vgpu->id, dmabuf_obj->dmabuf_id,
584 kref_read(&dmabuf_obj->kref),
605 struct intel_vgpu_dmabuf_obj *dmabuf_obj;
609 dmabuf_obj = container_of(pos, struct intel_vgpu_dmabuf_obj,
611 dmabuf_obj->vgpu = NULL;
613 idr_remove(&vgpu->object_idr, dmabuf_obj->dmabuf_id);
617 /* dmabuf_obj might be freed in dmabuf_obj_put */
618 if (dmabuf_obj->initref) {
619 dmabuf_obj->initref = false;
620 dmabuf_obj_put(dmabuf_obj);