Lines Matching refs:gvt

40 	struct drm_i915_private *i915 = vgpu->gvt->gt->i915;  in populate_pvinfo_page()
107 int intel_gvt_init_vgpu_types(struct intel_gvt *gvt) in intel_gvt_init_vgpu_types() argument
125 low_avail = gvt_aperture_sz(gvt) - HOST_LOW_GM_SIZE; in intel_gvt_init_vgpu_types()
126 high_avail = gvt_hidden_sz(gvt) - HOST_HIGH_GM_SIZE; in intel_gvt_init_vgpu_types()
129 gvt->types = kcalloc(num_types, sizeof(struct intel_vgpu_type), in intel_gvt_init_vgpu_types()
131 if (!gvt->types) in intel_gvt_init_vgpu_types()
139 gvt->types[i].low_gm_size = vgpu_types[i].low_mm; in intel_gvt_init_vgpu_types()
140 gvt->types[i].high_gm_size = vgpu_types[i].high_mm; in intel_gvt_init_vgpu_types()
141 gvt->types[i].fence = vgpu_types[i].fence; in intel_gvt_init_vgpu_types()
147 gvt->types[i].weight = vgpu_types[i].weight; in intel_gvt_init_vgpu_types()
148 gvt->types[i].resolution = vgpu_types[i].edid; in intel_gvt_init_vgpu_types()
149 gvt->types[i].avail_instance = min(low_avail / vgpu_types[i].low_mm, in intel_gvt_init_vgpu_types()
152 if (IS_GEN(gvt->gt->i915, 8)) in intel_gvt_init_vgpu_types()
153 sprintf(gvt->types[i].name, "GVTg_V4_%s", in intel_gvt_init_vgpu_types()
155 else if (IS_GEN(gvt->gt->i915, 9)) in intel_gvt_init_vgpu_types()
156 sprintf(gvt->types[i].name, "GVTg_V5_%s", in intel_gvt_init_vgpu_types()
160 i, gvt->types[i].name, in intel_gvt_init_vgpu_types()
161 gvt->types[i].avail_instance, in intel_gvt_init_vgpu_types()
162 gvt->types[i].low_gm_size, in intel_gvt_init_vgpu_types()
163 gvt->types[i].high_gm_size, gvt->types[i].fence, in intel_gvt_init_vgpu_types()
164 gvt->types[i].weight, in intel_gvt_init_vgpu_types()
165 vgpu_edid_str(gvt->types[i].resolution)); in intel_gvt_init_vgpu_types()
168 gvt->num_types = i; in intel_gvt_init_vgpu_types()
172 void intel_gvt_clean_vgpu_types(struct intel_gvt *gvt) in intel_gvt_clean_vgpu_types() argument
174 kfree(gvt->types); in intel_gvt_clean_vgpu_types()
177 static void intel_gvt_update_vgpu_types(struct intel_gvt *gvt) in intel_gvt_update_vgpu_types() argument
186 low_gm_avail = gvt_aperture_sz(gvt) - HOST_LOW_GM_SIZE - in intel_gvt_update_vgpu_types()
187 gvt->gm.vgpu_allocated_low_gm_size; in intel_gvt_update_vgpu_types()
188 high_gm_avail = gvt_hidden_sz(gvt) - HOST_HIGH_GM_SIZE - in intel_gvt_update_vgpu_types()
189 gvt->gm.vgpu_allocated_high_gm_size; in intel_gvt_update_vgpu_types()
190 fence_avail = gvt_fence_sz(gvt) - HOST_FENCE - in intel_gvt_update_vgpu_types()
191 gvt->fence.vgpu_allocated_fence_num; in intel_gvt_update_vgpu_types()
193 for (i = 0; i < gvt->num_types; i++) { in intel_gvt_update_vgpu_types()
194 low_gm_min = low_gm_avail / gvt->types[i].low_gm_size; in intel_gvt_update_vgpu_types()
195 high_gm_min = high_gm_avail / gvt->types[i].high_gm_size; in intel_gvt_update_vgpu_types()
196 fence_min = fence_avail / gvt->types[i].fence; in intel_gvt_update_vgpu_types()
197 gvt->types[i].avail_instance = min(min(low_gm_min, high_gm_min), in intel_gvt_update_vgpu_types()
201 i, gvt->types[i].name, in intel_gvt_update_vgpu_types()
202 gvt->types[i].avail_instance, gvt->types[i].low_gm_size, in intel_gvt_update_vgpu_types()
203 gvt->types[i].high_gm_size, gvt->types[i].fence); in intel_gvt_update_vgpu_types()
275 struct intel_gvt *gvt = vgpu->gvt; in intel_gvt_destroy_vgpu() local
276 struct drm_i915_private *i915 = gvt->gt->i915; in intel_gvt_destroy_vgpu()
284 mutex_lock(&gvt->lock); in intel_gvt_destroy_vgpu()
285 idr_remove(&gvt->vgpu_idr, vgpu->id); in intel_gvt_destroy_vgpu()
286 mutex_unlock(&gvt->lock); in intel_gvt_destroy_vgpu()
302 mutex_lock(&gvt->lock); in intel_gvt_destroy_vgpu()
303 if (idr_is_empty(&gvt->vgpu_idr)) in intel_gvt_destroy_vgpu()
304 intel_gvt_clean_irq(gvt); in intel_gvt_destroy_vgpu()
305 intel_gvt_update_vgpu_types(gvt); in intel_gvt_destroy_vgpu()
306 mutex_unlock(&gvt->lock); in intel_gvt_destroy_vgpu()
322 struct intel_vgpu *intel_gvt_create_idle_vgpu(struct intel_gvt *gvt) in intel_gvt_create_idle_vgpu() argument
333 vgpu->gvt = gvt; in intel_gvt_create_idle_vgpu()
368 static struct intel_vgpu *__intel_gvt_create_vgpu(struct intel_gvt *gvt, in __intel_gvt_create_vgpu() argument
371 struct drm_i915_private *dev_priv = gvt->gt->i915; in __intel_gvt_create_vgpu()
383 ret = idr_alloc(&gvt->vgpu_idr, vgpu, IDLE_VGPU_IDR + 1, GVT_MAX_VGPU, in __intel_gvt_create_vgpu()
390 vgpu->gvt = gvt; in __intel_gvt_create_vgpu()
466 idr_remove(&gvt->vgpu_idr, vgpu->id); in __intel_gvt_create_vgpu()
482 struct intel_vgpu *intel_gvt_create_vgpu(struct intel_gvt *gvt, in intel_gvt_create_vgpu() argument
500 mutex_lock(&gvt->lock); in intel_gvt_create_vgpu()
501 vgpu = __intel_gvt_create_vgpu(gvt, &param); in intel_gvt_create_vgpu()
504 intel_gvt_update_vgpu_types(gvt); in intel_gvt_create_vgpu()
505 mutex_unlock(&gvt->lock); in intel_gvt_create_vgpu()
541 struct intel_gvt *gvt = vgpu->gvt; in intel_gvt_reset_vgpu_locked() local
542 struct intel_gvt_workload_scheduler *scheduler = &gvt->scheduler; in intel_gvt_reset_vgpu_locked()