Lines Matching refs:vgpu
48 struct intel_vgpu *vgpu;
64 vgpu = fb_info->obj->vgpu;
65 if (drm_WARN_ON(&dev_priv->drm, !vgpu))
82 if (intel_gvt_dma_pin_guest_page(vgpu, dma_addr)) {
101 intel_gvt_dma_unmap_guest_page(vgpu, dma_addr);
119 struct intel_vgpu *vgpu = obj->vgpu;
123 intel_gvt_dma_unmap_guest_page(vgpu,
135 struct intel_vgpu *vgpu = obj->vgpu;
139 if (vgpu && test_bit(INTEL_VGPU_STATUS_ACTIVE, vgpu->status) &&
140 !list_empty(&vgpu->dmabuf_obj_list_head)) {
141 list_for_each(pos, &vgpu->dmabuf_obj_list_head) {
145 idr_remove(&vgpu->object_idr,
175 struct intel_vgpu *vgpu = obj->vgpu;
177 if (vgpu) {
178 mutex_lock(&vgpu->dmabuf_lock);
181 mutex_unlock(&vgpu->dmabuf_lock);
183 /* vgpu is NULL, as it has been removed already */
254 struct intel_vgpu *vgpu,
265 ret = intel_vgpu_decode_primary_plane(vgpu, &p);
295 ret = intel_vgpu_decode_cursor_plane(vgpu, &c);
331 if (!intel_gvt_ggtt_validate_range(vgpu, info->start, info->size)) {
340 pick_dmabuf_by_info(struct intel_vgpu *vgpu,
348 list_for_each(pos, &vgpu->dmabuf_obj_list_head) {
370 pick_dmabuf_by_num(struct intel_vgpu *vgpu, u32 id)
376 list_for_each(pos, &vgpu->dmabuf_obj_list_head) {
402 int intel_vgpu_query_plane(struct intel_vgpu *vgpu, void *args)
404 struct drm_device *dev = &vgpu->gvt->gt->i915->drm;
417 ret = vgpu_get_plane_info(dev, vgpu, &fb_info,
422 mutex_lock(&vgpu->dmabuf_lock);
424 dmabuf_obj = pick_dmabuf_by_info(vgpu, &fb_info);
438 gvt_dbg_dpy("vgpu%d: re-use dmabuf_obj ref %d, id %d\n",
439 vgpu->id, kref_read(&dmabuf_obj->kref),
441 mutex_unlock(&vgpu->dmabuf_lock);
445 mutex_unlock(&vgpu->dmabuf_lock);
458 gvt_vgpu_err("allocate intel vgpu fb info failed\n");
466 dmabuf_obj->vgpu = vgpu;
468 ret = idr_alloc(&vgpu->object_idr, dmabuf_obj, 1, 0, GFP_NOWAIT);
481 mutex_lock(&vgpu->dmabuf_lock);
482 list_add_tail(&dmabuf_obj->list, &vgpu->dmabuf_obj_list_head);
483 mutex_unlock(&vgpu->dmabuf_lock);
485 gvt_dbg_dpy("vgpu%d: %s new dmabuf_obj ref %d, id %d\n", vgpu->id,
500 int intel_vgpu_get_dmabuf(struct intel_vgpu *vgpu, unsigned int dmabuf_id)
502 struct drm_device *dev = &vgpu->gvt->gt->i915->drm;
509 mutex_lock(&vgpu->dmabuf_lock);
511 dmabuf_obj = pick_dmabuf_by_num(vgpu, dmabuf_id);
548 mutex_unlock(&vgpu->dmabuf_lock);
550 gvt_dbg_dpy("vgpu%d: dmabuf:%d, dmabuf ref %d, fd:%d\n"
552 vgpu->id, dmabuf_obj->dmabuf_id,
567 mutex_unlock(&vgpu->dmabuf_lock);
571 void intel_vgpu_dmabuf_cleanup(struct intel_vgpu *vgpu)
576 mutex_lock(&vgpu->dmabuf_lock);
577 list_for_each_safe(pos, n, &vgpu->dmabuf_obj_list_head) {
579 dmabuf_obj->vgpu = NULL;
581 idr_remove(&vgpu->object_idr, dmabuf_obj->dmabuf_id);
591 mutex_unlock(&vgpu->dmabuf_lock);