Commit a832d357 authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Move the PIPEMISC write the correct place

I fumbled the PIPEMISC write into the wrong place. It only gets
called for fastsets, but since value needs to be updated based on
the set of active planes it needs to be done for all plane updates.
Move it to the correct spot.

The symptoms include SDR planes never showing up if a previous
modeset/fastset left the pipe in HDR mode. This was immediately
obvious when running the kms_plane pixel format tests. Unfortunately
the test didn't realize it was scanning out pure black all the time
and declared success anyway.

Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Shashank Sharma <shashank.sharma@intel.com>
Fixes: 09b25812 ("drm/i915: Enable pipe HDR mode on ICL if only HDR planes are used")
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190502200607.14504-1-ville.syrjala@linux.intel.comReviewed-by: default avatarUma Shankar <uma.shankar@intel.com>
parent 0d90ccb7
...@@ -4101,9 +4101,6 @@ static void intel_update_pipe_config(const struct intel_crtc_state *old_crtc_sta ...@@ -4101,9 +4101,6 @@ static void intel_update_pipe_config(const struct intel_crtc_state *old_crtc_sta
ironlake_pfit_disable(old_crtc_state); ironlake_pfit_disable(old_crtc_state);
} }
if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv))
bdw_set_pipemisc(new_crtc_state);
if (INTEL_GEN(dev_priv) >= 11) if (INTEL_GEN(dev_priv) >= 11)
icl_set_pipe_chicken(crtc); icl_set_pipe_chicken(crtc);
} }
...@@ -14173,6 +14170,9 @@ static void intel_begin_crtc_commit(struct intel_atomic_state *state, ...@@ -14173,6 +14170,9 @@ static void intel_begin_crtc_commit(struct intel_atomic_state *state,
else if (INTEL_GEN(dev_priv) >= 9) else if (INTEL_GEN(dev_priv) >= 9)
skl_detach_scalers(new_crtc_state); skl_detach_scalers(new_crtc_state);
if (INTEL_GEN(dev_priv) >= 9 || IS_BROADWELL(dev_priv))
bdw_set_pipemisc(new_crtc_state);
out: out:
if (dev_priv->display.atomic_update_watermarks) if (dev_priv->display.atomic_update_watermarks)
dev_priv->display.atomic_update_watermarks(state, dev_priv->display.atomic_update_watermarks(state,
......
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