drm/i915/dsc: Fix bigjoiner check in dsc_disable
authorVandita Kulkarni <vandita.kulkarni@intel.com>
Wed, 9 Jun 2021 06:59:14 +0000 (12:29 +0530)
committerAnshuman Gupta <anshuman.gupta@intel.com>
Wed, 9 Jun 2021 07:50:07 +0000 (13:20 +0530)
This change takes care of resetting the dss_ctl registers
in case of dsc_disable, bigjoiner disable and also
uncompressed joiner disable.

v2: Fix formatting
v3: Fix the typo (Mansi)

Suggested-by: Jani Nikula <jani.nikula@intel.com>
Fixes: d961eb20adb6 ("drm/i915/bigjoiner: atomic commit changes for uncompressed joiner")
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3537
Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210609065914.4454-1-vandita.kulkarni@intel.com
drivers/gpu/drm/i915/display/intel_vdsc.c

index 19cd953..7121b66 100644 (file)
@@ -1161,12 +1161,12 @@ void intel_dsc_disable(const struct intel_crtc_state *old_crtc_state)
        struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 
-       if (!(old_crtc_state->dsc.compression_enable &&
-             old_crtc_state->bigjoiner))
-               return;
-
-       intel_de_write(dev_priv, dss_ctl1_reg(old_crtc_state), 0);
-       intel_de_write(dev_priv, dss_ctl2_reg(old_crtc_state), 0);
+       /* Disable only if either of them is enabled */
+       if (old_crtc_state->dsc.compression_enable ||
+           old_crtc_state->bigjoiner) {
+               intel_de_write(dev_priv, dss_ctl1_reg(old_crtc_state), 0);
+               intel_de_write(dev_priv, dss_ctl2_reg(old_crtc_state), 0);
+       }
 }
 
 void intel_uncompressed_joiner_get_config(struct intel_crtc_state *crtc_state)