drm/i915/dsc: clarify DSC support for pipe A on ICL
authorJani Nikula <jani.nikula@intel.com>
Wed, 11 Dec 2019 16:23:47 +0000 (18:23 +0200)
committerJani Nikula <jani.nikula@intel.com>
Thu, 19 Dec 2019 13:23:59 +0000 (15:23 +0200)
The check for cpu_transcoder != TRANSCODER_A is more magic than
necessary, and potentially misleading. Before TGL, DSC is supported on
pipe A if, and only if, it's used with eDP or DSI transcoders. No
functional changes.

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com>
Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/f00e9d55ce20b256177222588780c660aa587cc3.1576081155.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_vdsc.c

index e6f60be..41718f7 100644 (file)
@@ -337,7 +337,10 @@ static const struct rc_parameters *get_rc_params(u16 compressed_bpp,
 bool intel_dsc_source_support(struct intel_encoder *encoder,
                              const struct intel_crtc_state *crtc_state)
 {
+       const struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
        struct drm_i915_private *i915 = to_i915(encoder->base.dev);
+       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+       enum pipe pipe = crtc->pipe;
 
        if (!INTEL_INFO(i915)->display.has_dsc)
                return false;
@@ -347,7 +350,10 @@ bool intel_dsc_source_support(struct intel_encoder *encoder,
                return true;
 
        if (INTEL_GEN(i915) >= 10 &&
-           crtc_state->cpu_transcoder != TRANSCODER_A)
+           (pipe != PIPE_A ||
+            (cpu_transcoder == TRANSCODER_EDP ||
+             cpu_transcoder == TRANSCODER_DSI_0 ||
+             cpu_transcoder == TRANSCODER_DSI_1)))
                return true;
 
        return false;