Lines Matching refs:gvt

54 #include "gvt.h"
180 struct device *dev = vgpu->gvt->gt->i915->drm.dev;
203 struct device *dev = vgpu->gvt->gt->i915->drm.dev;
639 mutex_lock(&vgpu->gvt->lock);
640 for_each_active_vgpu(vgpu->gvt, itr, id) {
650 mutex_unlock(&vgpu->gvt->lock);
775 aperture_va = io_mapping_map_wc(&vgpu->gvt->gt->ggtt->iomap,
842 struct intel_gvt *gvt = vgpu->gvt;
852 return (offset >= gvt->device_info.gtt_start_offset &&
853 offset < gvt->device_info.gtt_start_offset + gvt_ggtt_sz(gvt)) ?
1038 pgoff = (gvt_aperture_pa_base(vgpu->gvt) >> PAGE_SHIFT) + pgoff;
1183 info.size = vgpu->gvt->device_info.cfg_space_size;
1209 info.size = gvt_aperture_sz(vgpu->gvt);
1443 vgpu->gvt = kdev_to_i915(mdev->type->parent->dev)->gvt;
1515 struct intel_gvt *gvt = kdev_to_i915(mtype->parent->dev)->gvt;
1518 mutex_lock(&gvt->lock);
1519 low_gm_avail = gvt_aperture_sz(gvt) - HOST_LOW_GM_SIZE -
1520 gvt->gm.vgpu_allocated_low_gm_size;
1521 high_gm_avail = gvt_hidden_sz(gvt) - HOST_HIGH_GM_SIZE -
1522 gvt->gm.vgpu_allocated_high_gm_size;
1523 fence_avail = gvt_fence_sz(gvt) - HOST_FENCE -
1524 gvt->fence.vgpu_allocated_fence_num;
1525 mutex_unlock(&gvt->lock);
1719 static void init_device_info(struct intel_gvt *gvt)
1721 struct intel_gvt_device_info *info = &gvt->device_info;
1722 struct pci_dev *pdev = to_pci_dev(gvt->gt->i915->drm.dev);
1736 static void intel_gvt_test_and_emulate_vblank(struct intel_gvt *gvt)
1741 mutex_lock(&gvt->lock);
1742 idr_for_each_entry((&(gvt)->vgpu_idr), (vgpu), (id)) {
1744 (void *)&gvt->service_request)) {
1749 mutex_unlock(&gvt->lock);
1754 struct intel_gvt *gvt = (struct intel_gvt *)data;
1760 ret = wait_event_interruptible(gvt->service_thread_wq,
1761 kthread_should_stop() || gvt->service_request);
1769 intel_gvt_test_and_emulate_vblank(gvt);
1772 (void *)&gvt->service_request) ||
1774 (void *)&gvt->service_request)) {
1775 intel_gvt_schedule(gvt);
1782 static void clean_service_thread(struct intel_gvt *gvt)
1784 kthread_stop(gvt->service_thread);
1787 static int init_service_thread(struct intel_gvt *gvt)
1789 init_waitqueue_head(&gvt->service_thread_wq);
1791 gvt->service_thread = kthread_run(gvt_service_thread,
1792 gvt, "gvt_service_thread");
1793 if (IS_ERR(gvt->service_thread)) {
1795 return PTR_ERR(gvt->service_thread);
1810 struct intel_gvt *gvt = fetch_and_zero(&i915->gvt);
1812 if (drm_WARN_ON(&i915->drm, !gvt))
1815 mdev_unregister_parent(&gvt->parent);
1816 intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
1817 intel_gvt_clean_vgpu_types(gvt);
1819 intel_gvt_debugfs_clean(gvt);
1820 clean_service_thread(gvt);
1821 intel_gvt_clean_cmd_parser(gvt);
1822 intel_gvt_clean_sched_policy(gvt);
1823 intel_gvt_clean_workload_scheduler(gvt);
1824 intel_gvt_clean_gtt(gvt);
1825 intel_gvt_free_firmware(gvt);
1826 intel_gvt_clean_mmio_info(gvt);
1827 idr_destroy(&gvt->vgpu_idr);
1829 kfree(i915->gvt);
1845 struct intel_gvt *gvt;
1849 if (drm_WARN_ON(&i915->drm, i915->gvt))
1852 gvt = kzalloc(sizeof(struct intel_gvt), GFP_KERNEL);
1853 if (!gvt)
1856 gvt_dbg_core("init gvt device\n");
1858 idr_init_base(&gvt->vgpu_idr, 1);
1859 spin_lock_init(&gvt->scheduler.mmio_context_lock);
1860 mutex_init(&gvt->lock);
1861 mutex_init(&gvt->sched_lock);
1862 gvt->gt = to_gt(i915);
1863 i915->gvt = gvt;
1865 init_device_info(gvt);
1867 ret = intel_gvt_setup_mmio_info(gvt);
1871 intel_gvt_init_engine_mmio_context(gvt);
1873 ret = intel_gvt_load_firmware(gvt);
1877 ret = intel_gvt_init_irq(gvt);
1881 ret = intel_gvt_init_gtt(gvt);
1885 ret = intel_gvt_init_workload_scheduler(gvt);
1889 ret = intel_gvt_init_sched_policy(gvt);
1893 ret = intel_gvt_init_cmd_parser(gvt);
1897 ret = init_service_thread(gvt);
1901 ret = intel_gvt_init_vgpu_types(gvt);
1905 vgpu = intel_gvt_create_idle_vgpu(gvt);
1911 gvt->idle_vgpu = vgpu;
1913 intel_gvt_debugfs_init(gvt);
1915 ret = mdev_register_parent(&gvt->parent, i915->drm.dev,
1917 gvt->mdev_types, gvt->num_types);
1921 gvt_dbg_core("gvt device initialization is done\n");
1925 intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
1926 intel_gvt_debugfs_clean(gvt);
1928 intel_gvt_clean_vgpu_types(gvt);
1930 clean_service_thread(gvt);
1932 intel_gvt_clean_cmd_parser(gvt);
1934 intel_gvt_clean_sched_policy(gvt);
1936 intel_gvt_clean_workload_scheduler(gvt);
1938 intel_gvt_clean_gtt(gvt);
1940 intel_gvt_free_firmware(gvt);
1942 intel_gvt_clean_mmio_info(gvt);
1944 idr_destroy(&gvt->vgpu_idr);
1945 kfree(gvt);
1946 i915->gvt = NULL;
1952 struct intel_gvt *gvt = i915->gvt;
1954 intel_gvt_restore_fence(gvt);
1955 intel_gvt_restore_mmio(gvt);
1956 intel_gvt_restore_ggtt(gvt);