Commit 67b7f33e authored by Chuanxiao Dong's avatar Chuanxiao Dong Committed by Joonas Lahtinen

drm/i915/gvt: Add gvt options sanitize function

The intel_gvt_sanitize_options will sanitize the GVT related
options before doing initialize the GVT.
Suggested-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: default avatarChuanxiao Dong <chuanxiao.dong@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
parent 00c26cf9
...@@ -997,6 +997,8 @@ static void intel_sanitize_options(struct drm_i915_private *dev_priv) ...@@ -997,6 +997,8 @@ static void intel_sanitize_options(struct drm_i915_private *dev_priv)
DRM_DEBUG_DRIVER("use GPU semaphores? %s\n", yesno(i915.semaphores)); DRM_DEBUG_DRIVER("use GPU semaphores? %s\n", yesno(i915.semaphores));
intel_uc_sanitize_options(dev_priv); intel_uc_sanitize_options(dev_priv);
intel_gvt_sanitize_options(dev_priv);
} }
/** /**
......
...@@ -50,6 +50,32 @@ static bool is_supported_device(struct drm_i915_private *dev_priv) ...@@ -50,6 +50,32 @@ static bool is_supported_device(struct drm_i915_private *dev_priv)
return false; return false;
} }
/**
* 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 * intel_gvt_init - initialize GVT components
* @dev_priv: drm i915 private data * @dev_priv: drm i915 private data
...@@ -69,16 +95,6 @@ int intel_gvt_init(struct drm_i915_private *dev_priv) ...@@ -69,16 +95,6 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
return 0; 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) { if (!i915.enable_execlists) {
DRM_INFO("GPU guest virtualisation [GVT-g] disabled due to disabled execlist submission [i915.enable_execlists module parameter]\n"); DRM_INFO("GPU guest virtualisation [GVT-g] disabled due to disabled execlist submission [i915.enable_execlists module parameter]\n");
goto bail; goto bail;
......
...@@ -32,6 +32,7 @@ void intel_gvt_cleanup(struct drm_i915_private *dev_priv); ...@@ -32,6 +32,7 @@ void intel_gvt_cleanup(struct drm_i915_private *dev_priv);
int intel_gvt_init_device(struct drm_i915_private *dev_priv); int intel_gvt_init_device(struct drm_i915_private *dev_priv);
void intel_gvt_clean_device(struct drm_i915_private *dev_priv); void intel_gvt_clean_device(struct drm_i915_private *dev_priv);
int intel_gvt_init_host(void); int intel_gvt_init_host(void);
void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv);
#else #else
static inline int intel_gvt_init(struct drm_i915_private *dev_priv) static inline int intel_gvt_init(struct drm_i915_private *dev_priv)
{ {
...@@ -40,6 +41,10 @@ static inline int intel_gvt_init(struct drm_i915_private *dev_priv) ...@@ -40,6 +41,10 @@ static inline int intel_gvt_init(struct drm_i915_private *dev_priv)
static inline void intel_gvt_cleanup(struct drm_i915_private *dev_priv) static inline void intel_gvt_cleanup(struct drm_i915_private *dev_priv)
{ {
} }
static inline void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
{
}
#endif #endif
#endif /* _INTEL_GVT_H_ */ #endif /* _INTEL_GVT_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment