Lines Matching refs:gvt
49 static struct intel_vgpu_type *intel_gvt_find_vgpu_type(struct intel_gvt *gvt, in intel_gvt_find_vgpu_type() argument
53 dev_driver_string(&gvt->gt->i915->drm.pdev->dev); in intel_gvt_find_vgpu_type()
57 for (i = 0; i < gvt->num_types; i++) { in intel_gvt_find_vgpu_type()
58 struct intel_vgpu_type *t = &gvt->types[i]; in intel_gvt_find_vgpu_type()
72 void *gvt = kdev_to_i915(dev)->gvt; in available_instances_show() local
74 type = intel_gvt_find_vgpu_type(gvt, kobject_name(kobj)); in available_instances_show()
93 void *gvt = kdev_to_i915(dev)->gvt; in description_show() local
95 type = intel_gvt_find_vgpu_type(gvt, kobject_name(kobj)); in description_show()
129 static int intel_gvt_init_vgpu_type_groups(struct intel_gvt *gvt) in intel_gvt_init_vgpu_type_groups() argument
135 for (i = 0; i < gvt->num_types; i++) { in intel_gvt_init_vgpu_type_groups()
136 type = &gvt->types[i]; in intel_gvt_init_vgpu_type_groups()
158 static void intel_gvt_cleanup_vgpu_type_groups(struct intel_gvt *gvt) in intel_gvt_cleanup_vgpu_type_groups() argument
163 for (i = 0; i < gvt->num_types; i++) { in intel_gvt_cleanup_vgpu_type_groups()
189 static void init_device_info(struct intel_gvt *gvt) in init_device_info() argument
191 struct intel_gvt_device_info *info = &gvt->device_info; in init_device_info()
192 struct pci_dev *pdev = gvt->gt->i915->drm.pdev; in init_device_info()
208 struct intel_gvt *gvt = (struct intel_gvt *)data; in gvt_service_thread() local
214 ret = wait_event_interruptible(gvt->service_thread_wq, in gvt_service_thread()
215 kthread_should_stop() || gvt->service_request); in gvt_service_thread()
224 (void *)&gvt->service_request)) in gvt_service_thread()
225 intel_gvt_emulate_vblank(gvt); in gvt_service_thread()
228 (void *)&gvt->service_request) || in gvt_service_thread()
230 (void *)&gvt->service_request)) { in gvt_service_thread()
231 intel_gvt_schedule(gvt); in gvt_service_thread()
238 static void clean_service_thread(struct intel_gvt *gvt) in clean_service_thread() argument
240 kthread_stop(gvt->service_thread); in clean_service_thread()
243 static int init_service_thread(struct intel_gvt *gvt) in init_service_thread() argument
245 init_waitqueue_head(&gvt->service_thread_wq); in init_service_thread()
247 gvt->service_thread = kthread_run(gvt_service_thread, in init_service_thread()
248 gvt, "gvt_service_thread"); in init_service_thread()
249 if (IS_ERR(gvt->service_thread)) { in init_service_thread()
251 return PTR_ERR(gvt->service_thread); in init_service_thread()
266 struct intel_gvt *gvt = fetch_and_zero(&i915->gvt); in intel_gvt_clean_device() local
268 if (drm_WARN_ON(&i915->drm, !gvt)) in intel_gvt_clean_device()
271 intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu); in intel_gvt_clean_device()
272 intel_gvt_cleanup_vgpu_type_groups(gvt); in intel_gvt_clean_device()
273 intel_gvt_clean_vgpu_types(gvt); in intel_gvt_clean_device()
275 intel_gvt_debugfs_clean(gvt); in intel_gvt_clean_device()
276 clean_service_thread(gvt); in intel_gvt_clean_device()
277 intel_gvt_clean_cmd_parser(gvt); in intel_gvt_clean_device()
278 intel_gvt_clean_sched_policy(gvt); in intel_gvt_clean_device()
279 intel_gvt_clean_workload_scheduler(gvt); in intel_gvt_clean_device()
280 intel_gvt_clean_gtt(gvt); in intel_gvt_clean_device()
281 intel_gvt_clean_irq(gvt); in intel_gvt_clean_device()
282 intel_gvt_free_firmware(gvt); in intel_gvt_clean_device()
283 intel_gvt_clean_mmio_info(gvt); in intel_gvt_clean_device()
284 idr_destroy(&gvt->vgpu_idr); in intel_gvt_clean_device()
286 kfree(i915->gvt); in intel_gvt_clean_device()
302 struct intel_gvt *gvt; in intel_gvt_init_device() local
306 if (drm_WARN_ON(&i915->drm, i915->gvt)) in intel_gvt_init_device()
309 gvt = kzalloc(sizeof(struct intel_gvt), GFP_KERNEL); in intel_gvt_init_device()
310 if (!gvt) in intel_gvt_init_device()
315 idr_init(&gvt->vgpu_idr); in intel_gvt_init_device()
316 spin_lock_init(&gvt->scheduler.mmio_context_lock); in intel_gvt_init_device()
317 mutex_init(&gvt->lock); in intel_gvt_init_device()
318 mutex_init(&gvt->sched_lock); in intel_gvt_init_device()
319 gvt->gt = &i915->gt; in intel_gvt_init_device()
320 i915->gvt = gvt; in intel_gvt_init_device()
322 init_device_info(gvt); in intel_gvt_init_device()
324 ret = intel_gvt_setup_mmio_info(gvt); in intel_gvt_init_device()
328 intel_gvt_init_engine_mmio_context(gvt); in intel_gvt_init_device()
330 ret = intel_gvt_load_firmware(gvt); in intel_gvt_init_device()
334 ret = intel_gvt_init_irq(gvt); in intel_gvt_init_device()
338 ret = intel_gvt_init_gtt(gvt); in intel_gvt_init_device()
342 ret = intel_gvt_init_workload_scheduler(gvt); in intel_gvt_init_device()
346 ret = intel_gvt_init_sched_policy(gvt); in intel_gvt_init_device()
350 ret = intel_gvt_init_cmd_parser(gvt); in intel_gvt_init_device()
354 ret = init_service_thread(gvt); in intel_gvt_init_device()
358 ret = intel_gvt_init_vgpu_types(gvt); in intel_gvt_init_device()
362 ret = intel_gvt_init_vgpu_type_groups(gvt); in intel_gvt_init_device()
368 vgpu = intel_gvt_create_idle_vgpu(gvt); in intel_gvt_init_device()
374 gvt->idle_vgpu = vgpu; in intel_gvt_init_device()
376 intel_gvt_debugfs_init(gvt); in intel_gvt_init_device()
384 intel_gvt_clean_vgpu_types(gvt); in intel_gvt_init_device()
386 clean_service_thread(gvt); in intel_gvt_init_device()
388 intel_gvt_clean_cmd_parser(gvt); in intel_gvt_init_device()
390 intel_gvt_clean_sched_policy(gvt); in intel_gvt_init_device()
392 intel_gvt_clean_workload_scheduler(gvt); in intel_gvt_init_device()
394 intel_gvt_clean_gtt(gvt); in intel_gvt_init_device()
396 intel_gvt_clean_irq(gvt); in intel_gvt_init_device()
398 intel_gvt_free_firmware(gvt); in intel_gvt_init_device()
400 intel_gvt_clean_mmio_info(gvt); in intel_gvt_init_device()
402 idr_destroy(&gvt->vgpu_idr); in intel_gvt_init_device()
403 kfree(gvt); in intel_gvt_init_device()
404 i915->gvt = NULL; in intel_gvt_init_device()
412 void *gvt; in intel_gvt_register_hypervisor() local
427 gvt = (void *)kdev_to_i915(intel_gvt_host.dev)->gvt; in intel_gvt_register_hypervisor()
429 ret = intel_gvt_hypervisor_host_init(intel_gvt_host.dev, gvt, in intel_gvt_register_hypervisor()