drm/i915/display: Fix handling of enable_psr parameter

Commit 3cf05076 ("drm/i915/bios: Split VBT data into per-panel vs.
global parts") cause PSR to be disabled when enable_psr has the
default value and there is at least one DP port that do not supports
PSR.

That was happening because intel_psr_init() is called for every DP
port and then enable_psr is globaly set to 0 based on the PSR support
of the DP port.

Here dropping the enable_psr overwritten and using the VBT PSR value
when enable_psr is set as default.

Fixes: 3cf05076 ("drm/i915/bios: Split VBT data into per-panel vs. global parts")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Mika Kahola <mika.kahola@intel.com>
Signed-off-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
Reviewed-by: default avatarJouni Högander <jouni.hogander@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220608203344.513082-1-jose.souza@intel.com
parent 24b8b74e
...@@ -86,10 +86,13 @@ ...@@ -86,10 +86,13 @@
static bool psr_global_enabled(struct intel_dp *intel_dp) static bool psr_global_enabled(struct intel_dp *intel_dp)
{ {
struct intel_connector *connector = intel_dp->attached_connector;
struct drm_i915_private *i915 = dp_to_i915(intel_dp); struct drm_i915_private *i915 = dp_to_i915(intel_dp);
switch (intel_dp->psr.debug & I915_PSR_DEBUG_MODE_MASK) { switch (intel_dp->psr.debug & I915_PSR_DEBUG_MODE_MASK) {
case I915_PSR_DEBUG_DEFAULT: case I915_PSR_DEBUG_DEFAULT:
if (i915->params.enable_psr == -1)
return connector->panel.vbt.psr.enable;
return i915->params.enable_psr; return i915->params.enable_psr;
case I915_PSR_DEBUG_DISABLE: case I915_PSR_DEBUG_DISABLE:
return false; return false;
...@@ -2394,10 +2397,6 @@ void intel_psr_init(struct intel_dp *intel_dp) ...@@ -2394,10 +2397,6 @@ void intel_psr_init(struct intel_dp *intel_dp)
intel_dp->psr.source_support = true; intel_dp->psr.source_support = true;
if (dev_priv->params.enable_psr == -1)
if (!connector->panel.vbt.psr.enable)
dev_priv->params.enable_psr = 0;
/* Set link_standby x link_off defaults */ /* Set link_standby x link_off defaults */
if (DISPLAY_VER(dev_priv) < 12) if (DISPLAY_VER(dev_priv) < 12)
/* For new platforms up to TGL let's respect VBT back again */ /* For new platforms up to TGL let's respect VBT back again */
......
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