On Wed, 11 Dec 2019, Manasi Navare <manasi.d.navare@xxxxxxxxx> wrote: > On Wed, Dec 11, 2019 at 06:23:47PM +0200, Jani Nikula wrote: >> 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. >> > > Hmm, so we could still use PIPE_A but if its eDP or DSI it would use > TRANSCODER_EDP or TRANSCODER_DSI and that should still work? Correct, because on gen 11 eDP/DSI have a DSC engine in front of the transcoder. > So its simpler to say that if it is PIPE_A && transcoder_A then it doesnt > support DSC? > Wouldnt it be simpler to change the condition to : > if (INTEL_GEN(i915) >= 10 && !(pipe_A && transcode_A) > return true; The simplest is really the code as it is... but it's not clear, and would deserve a comment. But I very much prefer self-documenting code over comments explaining surprising code. So I'd like to spell out the eDP/DSI transcoders here. BR, Jani. > > Regards > Manasi > >> Cc: Manasi Navare <manasi.d.navare@xxxxxxxxx> >> Cc: Vandita Kulkarni <vandita.kulkarni@xxxxxxxxx> >> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> >> --- >> drivers/gpu/drm/i915/display/intel_vdsc.c | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c >> index e6f60be9ee84..41718f721484 100644 >> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c >> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c >> @@ -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; >> -- >> 2.20.1 >> -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx