forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 95099d4622f8cb224d94e314c7a8e0df60b13f87
kernel/drivers/gpu/drm/i915/intel_gvt.c
....@@ -22,6 +22,7 @@
2222 */
2323
2424 #include "i915_drv.h"
25
+#include "i915_vgpu.h"
2526 #include "intel_gvt.h"
2627
2728 /**
....@@ -49,6 +50,11 @@
4950 return true;
5051 if (IS_BROXTON(dev_priv))
5152 return true;
53
+ if (IS_COFFEELAKE(dev_priv))
54
+ return true;
55
+ if (IS_COMETLAKE(dev_priv))
56
+ return true;
57
+
5258 return false;
5359 }
5460
....@@ -60,22 +66,23 @@
6066 */
6167 void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
6268 {
63
- if (!i915_modparams.enable_gvt)
69
+ if (!dev_priv->params.enable_gvt)
6470 return;
6571
6672 if (intel_vgpu_active(dev_priv)) {
67
- DRM_INFO("GVT-g is disabled for guest\n");
73
+ drm_info(&dev_priv->drm, "GVT-g is disabled for guest\n");
6874 goto bail;
6975 }
7076
7177 if (!is_supported_device(dev_priv)) {
72
- DRM_INFO("Unsupported device. GVT-g is disabled\n");
78
+ drm_info(&dev_priv->drm,
79
+ "Unsupported device. GVT-g is disabled\n");
7380 goto bail;
7481 }
7582
7683 return;
7784 bail:
78
- i915_modparams.enable_gvt = 0;
85
+ dev_priv->params.enable_gvt = 0;
7986 }
8087
8188 /**
....@@ -92,49 +99,48 @@
9299 {
93100 int ret;
94101
95
- if (i915_inject_load_failure())
102
+ if (i915_inject_probe_failure(dev_priv))
96103 return -ENODEV;
97104
98
- if (!i915_modparams.enable_gvt) {
99
- DRM_DEBUG_DRIVER("GVT-g is disabled by kernel params\n");
105
+ if (!dev_priv->params.enable_gvt) {
106
+ drm_dbg(&dev_priv->drm,
107
+ "GVT-g is disabled by kernel params\n");
100108 return 0;
101109 }
102110
103
- if (USES_GUC_SUBMISSION(dev_priv)) {
104
- DRM_ERROR("i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission\n");
111
+ if (intel_uc_wants_guc_submission(&dev_priv->gt.uc)) {
112
+ drm_err(&dev_priv->drm,
113
+ "i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission\n");
105114 return -EIO;
106
- }
107
-
108
- /*
109
- * We're not in host or fail to find a MPT module, disable GVT-g
110
- */
111
- ret = intel_gvt_init_host();
112
- if (ret) {
113
- DRM_DEBUG_DRIVER("Not in host or MPT modules not found\n");
114
- goto bail;
115115 }
116116
117117 ret = intel_gvt_init_device(dev_priv);
118118 if (ret) {
119
- DRM_DEBUG_DRIVER("Fail to init GVT device\n");
119
+ drm_dbg(&dev_priv->drm, "Fail to init GVT device\n");
120120 goto bail;
121121 }
122122
123123 return 0;
124124
125125 bail:
126
- i915_modparams.enable_gvt = 0;
126
+ dev_priv->params.enable_gvt = 0;
127127 return 0;
128128 }
129129
130
+static inline bool intel_gvt_active(struct drm_i915_private *dev_priv)
131
+{
132
+ return dev_priv->gvt;
133
+}
134
+
130135 /**
131
- * intel_gvt_cleanup - cleanup GVT components when i915 driver is unloading
136
+ * intel_gvt_driver_remove - cleanup GVT components when i915 driver is
137
+ * unbinding
132138 * @dev_priv: drm i915 private *
133139 *
134140 * This function is called at the i915 driver unloading stage, to shutdown
135141 * GVT components and release the related resources.
136142 */
137
-void intel_gvt_cleanup(struct drm_i915_private *dev_priv)
143
+void intel_gvt_driver_remove(struct drm_i915_private *dev_priv)
138144 {
139145 if (!intel_gvt_active(dev_priv))
140146 return;