@@ -167,6 +167,9 @@ struct i915_params i915_modparams __read_mostly = {
i915_param_named_unsafe(enable_dp_mst, bool, 0600,
"Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true)");
+i915_param_named_unsafe(enable_sagv, bool, 0600,
+ "Enable SAGV (default: true)");
+
#if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
i915_param_named_unsafe(inject_load_failure, uint, 0400,
"Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point)");
@@ -69,7 +69,8 @@
param(bool, nuclear_pageflip, false) \
param(bool, enable_dp_mst, true) \
param(bool, enable_dpcd_backlight, false) \
- param(bool, enable_gvt, false)
+ param(bool, enable_gvt, false) \
+ param(bool, enable_sagv, true)
#define MEMBER(T, member, ...) T member;
struct i915_params {
@@ -3693,7 +3693,7 @@ bool intel_can_enable_sagv(struct drm_atomic_state *state)
int level, latency;
int sagv_block_time_us;
- if (!intel_has_sagv(dev_priv))
+ if (!intel_has_sagv(dev_priv) || !i915_modparams.enable_sagv)
return false;
if (IS_GEN9(dev_priv))
On Gen9 systems, with SAGV enabled, we have seen display corruption(screenshots attached in the bug) which eventually lead to a system hang. This happens when we have overlay plane and on enabling and disabling the overlay plane. When the system hangs, we do not have enough logs or information to debug the issue. Having a module parameter will help in debugging the system hang. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104975 Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com> --- Changes from v1: - Update the title and commit message. - Rename the module param to enable_sagv and set it to default true. drivers/gpu/drm/i915/i915_params.c | 3 +++ drivers/gpu/drm/i915/i915_params.h | 3 ++- drivers/gpu/drm/i915/intel_pm.c | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-)