Commit 419e505d authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Add i915.enable_sagv modparam

Currently we have no sane way to forcibly disable SAGV, which
makes debugging things a PITA. Manually poking at the pcode
mailbox with it's various SAGV/QGV/PSF formats is no fun,
and likely to be clobbered by the driver anyway.

Let's add a modparam for this.
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230322181219.5511-1-ville.syrjala@linux.intel.comReviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 2e4026a1
...@@ -411,6 +411,9 @@ static bool intel_crtc_can_enable_sagv(const struct intel_crtc_state *crtc_state ...@@ -411,6 +411,9 @@ static bool intel_crtc_can_enable_sagv(const struct intel_crtc_state *crtc_state
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *i915 = to_i915(crtc->base.dev); struct drm_i915_private *i915 = to_i915(crtc->base.dev);
if (!i915->params.enable_sagv)
return false;
if (DISPLAY_VER(i915) >= 12) if (DISPLAY_VER(i915) >= 12)
return tgl_crtc_can_enable_sagv(crtc_state); return tgl_crtc_can_enable_sagv(crtc_state);
else else
...@@ -3696,6 +3699,7 @@ static int intel_sagv_status_show(struct seq_file *m, void *unused) ...@@ -3696,6 +3699,7 @@ static int intel_sagv_status_show(struct seq_file *m, void *unused)
}; };
seq_printf(m, "SAGV available: %s\n", str_yes_no(intel_has_sagv(i915))); seq_printf(m, "SAGV available: %s\n", str_yes_no(intel_has_sagv(i915)));
seq_printf(m, "SAGV modparam: %s\n", str_enabled_disabled(i915->params.enable_sagv));
seq_printf(m, "SAGV status: %s\n", sagv_status[i915->display.sagv.status]); seq_printf(m, "SAGV status: %s\n", sagv_status[i915->display.sagv.status]);
seq_printf(m, "SAGV block time: %d usec\n", i915->display.sagv.block_time_us); seq_printf(m, "SAGV block time: %d usec\n", i915->display.sagv.block_time_us);
......
...@@ -121,6 +121,9 @@ i915_param_named_unsafe(enable_psr2_sel_fetch, bool, 0400, ...@@ -121,6 +121,9 @@ i915_param_named_unsafe(enable_psr2_sel_fetch, bool, 0400,
"(0=disabled, 1=enabled) " "(0=disabled, 1=enabled) "
"Default: 0"); "Default: 0");
i915_param_named_unsafe(enable_sagv, bool, 0600,
"Enable system agent voltage/frequency scaling (SAGV) (default: true)");
i915_param_named_unsafe(force_probe, charp, 0400, i915_param_named_unsafe(force_probe, charp, 0400,
"Force probe options for specified supported devices. " "Force probe options for specified supported devices. "
"See CONFIG_DRM_I915_FORCE_PROBE for details."); "See CONFIG_DRM_I915_FORCE_PROBE for details.");
......
...@@ -57,6 +57,7 @@ struct drm_printer; ...@@ -57,6 +57,7 @@ struct drm_printer;
param(bool, enable_dpt, true, 0400) \ param(bool, enable_dpt, true, 0400) \
param(bool, psr_safest_params, false, 0400) \ param(bool, psr_safest_params, false, 0400) \
param(bool, enable_psr2_sel_fetch, true, 0400) \ param(bool, enable_psr2_sel_fetch, true, 0400) \
param(bool, enable_sagv, true, 0600) \
param(int, disable_power_well, -1, 0400) \ param(int, disable_power_well, -1, 0400) \
param(int, enable_ips, 1, 0600) \ param(int, enable_ips, 1, 0600) \
param(int, invert_brightness, 0, 0600) \ param(int, invert_brightness, 0, 0600) \
......
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