aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_gvt.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_gvt.c')
-rw-r--r--drivers/gpu/drm/i915/intel_gvt.c43
1 files changed, 32 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_gvt.c b/drivers/gpu/drm/i915/intel_gvt.c
index e1ab6432a914..52d5b82790d9 100644
--- a/drivers/gpu/drm/i915/intel_gvt.c
+++ b/drivers/gpu/drm/i915/intel_gvt.c
@@ -51,6 +51,32 @@ static bool is_supported_device(struct drm_i915_private *dev_priv)
}
/**
+ * intel_gvt_sanitize_options - sanitize GVT related options
+ * @dev_priv: drm i915 private data
+ *
+ * This function is called at the i915 options sanitize stage.
+ */
+void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
+{
+ if (!i915.enable_gvt)
+ return;
+
+ if (intel_vgpu_active(dev_priv)) {
+ DRM_INFO("GVT-g is disabled for guest\n");
+ goto bail;
+ }
+
+ if (!is_supported_device(dev_priv)) {
+ DRM_INFO("Unsupported device. GVT-g is disabled\n");
+ goto bail;
+ }
+
+ return;
+bail:
+ i915.enable_gvt = 0;
+}
+
+/**
* intel_gvt_init - initialize GVT components
* @dev_priv: drm i915 private data
*
@@ -69,19 +95,14 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
return 0;
}
- if (intel_vgpu_active(dev_priv)) {
- DRM_DEBUG_DRIVER("GVT-g is disabled for guest\n");
- goto bail;
- }
-
- if (!is_supported_device(dev_priv)) {
- DRM_DEBUG_DRIVER("Unsupported device. GVT-g is disabled\n");
- goto bail;
+ if (!i915.enable_execlists) {
+ DRM_ERROR("i915 GVT-g loading failed due to disabled execlists mode\n");
+ return -EIO;
}
- if (!i915.enable_execlists) {
- DRM_INFO("GPU guest virtualisation [GVT-g] disabled due to disabled execlist submission [i915.enable_execlists module parameter]\n");
- goto bail;
+ if (i915.enable_guc_submission) {
+ DRM_ERROR("i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission\n");
+ return -EIO;
}
/*