drm/i915/mst: Swap TRANSCONF vs. FECSTALL_DIS_DPTSTREAM_DPTTG disable
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 18 Oct 2023 15:41:20 +0000 (18:41 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 1 Nov 2023 10:35:59 +0000 (12:35 +0200)
The DP modeset sequence asks us to disable TRANSCONF before clearing
the FECSTALL_DIS_DPTSTREAM_DPTTG bit, although we are still asked
to wait for the transcoder to stop only after both steps have
been done.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231018154123.5479-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index 1caf46e3e569234176fc32d8ff9d98af66306f70..cdec0425f519f627b69e9b31f69090b0c785aaf3 100644 (file)
@@ -485,6 +485,8 @@ void intel_disable_transcoder(const struct intel_crtc_state *old_crtc_state)
        if (!IS_I830(dev_priv))
                val &= ~TRANSCONF_ENABLE;
 
+       intel_de_write(dev_priv, reg, val);
+
        if (DISPLAY_VER(dev_priv) >= 14)
                intel_de_rmw(dev_priv, MTL_CHICKEN_TRANS(cpu_transcoder),
                             FECSTALL_DIS_DPTSTREAM_DPTTG, 0);
@@ -492,7 +494,6 @@ void intel_disable_transcoder(const struct intel_crtc_state *old_crtc_state)
                intel_de_rmw(dev_priv, CHICKEN_TRANS(cpu_transcoder),
                             FECSTALL_DIS_DPTSTREAM_DPTTG, 0);
 
-       intel_de_write(dev_priv, reg, val);
        if ((val & TRANSCONF_ENABLE) == 0)
                intel_wait_for_pipe_off(old_crtc_state);
 }