Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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));

	intel_uc_sanitize_options(dev_priv);

	intel_gvt_sanitize_options(dev_priv);
}

/**
+26 −10
Original line number Diff line number Diff line
@@ -50,6 +50,32 @@ static bool is_supported_device(struct drm_i915_private *dev_priv)
	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
 * @dev_priv: drm i915 private data
@@ -69,16 +95,6 @@ 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_INFO("GPU guest virtualisation [GVT-g] disabled due to disabled execlist submission [i915.enable_execlists module parameter]\n");
		goto bail;
+5 −0
Original line number Diff line number Diff line
@@ -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);
void intel_gvt_clean_device(struct drm_i915_private *dev_priv);
int intel_gvt_init_host(void);
void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv);
#else
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_sanitize_options(struct drm_i915_private *dev_priv)
{
}
#endif

#endif /* _INTEL_GVT_H_ */