On 6/8/2026 7:41 PM, Jouni Högander wrote:
Intel_dsc_enabled_on_link is not really about DSC being enabled on crtc. It
is telling if FEC is enabled on link.

Hmm... This is a bit unclear to me.

As per commit 470b84af457e ("drm/i915/dp_mst: Recompute all MST link CRTCs if DSC gets enabled on the link")

We wanted to do away with FEC tracking, and instead tracked DSC. FEC for UHBR was not getting filled so it makes sense to track DSC (FEC being mandatory for DP DSC).

From commit message for commit 470b84af457e

"...

Based on the above, to be able to determine the DSC state on both

non-UHBR and UHBR MST links, track the more generic DSC-enabled-on-link

state (instead of the FEC-enabled-on-link state) for each CRTC in

intel_link_bw_limits."

So to me it appears that we were actually concerned about DSC and not FEC and started using intel_dsc_enabled_on_link()

(later, fec_enable was unused and removed).

Perhaps I am missing some context?

Instead of intel_dsc_enabled_on_link
check status directly from crtc->dsc.compression_enable.

I agree to this part though. We can separate it out in any case.


Regards,

Ankit


Also rename intel_dsc_enabled_on_link as intel_fec_enabled_on_link.

Signed-off-by: Jouni Högander <[email protected]>
---
  drivers/gpu/drm/i915/display/intel_psr.c  | 6 +++---
  drivers/gpu/drm/i915/display/intel_vdsc.c | 2 +-
  drivers/gpu/drm/i915/display/intel_vdsc.h | 2 +-
  3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index ad2f6c79f5808..f58200d38ac2c 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1740,7 +1740,7 @@ static bool intel_sel_update_config_valid(struct 
intel_crtc_state *crtc_state,
                if (!connector->dp.panel_replay_caps.su_support)
                        goto unsupported;
- if (intel_dsc_enabled_on_link(crtc_state) &&
+               if (crtc_state->dsc.compression_enable &&
                    connector->dp.panel_replay_caps.dsc_support !=
                    INTEL_DP_PANEL_REPLAY_DSC_SELECTIVE_UPDATE) {
                        drm_dbg_kms(display->drm,
@@ -1840,7 +1840,7 @@ static bool _panel_replay_compute_config(struct 
intel_crtc_state *crtc_state,
                return false;
        }
- if (intel_dsc_enabled_on_link(crtc_state) &&
+       if (crtc_state->dsc.compression_enable &&
            connector->dp.panel_replay_caps.dsc_support ==
            INTEL_DP_PANEL_REPLAY_DSC_NOT_SUPPORTED) {
                drm_dbg_kms(display->drm,
@@ -3235,7 +3235,7 @@ verify_panel_replay_dsc_state(const struct 
intel_crtc_state *crtc_state)
                return;
drm_WARN_ON(display->drm,
-                   intel_dsc_enabled_on_link(crtc_state) &&
+                   crtc_state->dsc.compression_enable &&
                    crtc_state->panel_replay_dsc_support ==
                    INTEL_DP_PANEL_REPLAY_DSC_NOT_SUPPORTED);
  }
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c 
b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 8f06c3a4d56df..35c93fcbb6427 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -431,7 +431,7 @@ void intel_dsc_enable_on_crtc(struct intel_crtc_state 
*crtc_state)
        crtc_state->dsc.compression_enable = true;
  }
-bool intel_dsc_enabled_on_link(const struct intel_crtc_state *crtc_state)
+bool intel_fec_enabled_on_link(const struct intel_crtc_state *crtc_state)
  {
        struct intel_display *display = to_intel_display(crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.h b/drivers/gpu/drm/i915/display/intel_vdsc.h
index 3372f8694054d..60d86399808c0 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.h
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.h
@@ -28,7 +28,7 @@ void intel_dsc_enable(const struct intel_crtc_state 
*crtc_state);
  void intel_dsc_disable(const struct intel_crtc_state *crtc_state);
  int intel_dsc_compute_params(struct intel_crtc_state *pipe_config);
  void intel_dsc_enable_on_crtc(struct intel_crtc_state *crtc_state);
-bool intel_dsc_enabled_on_link(const struct intel_crtc_state *crtc_state);
+bool intel_fec_enabled_on_link(const struct intel_crtc_state *crtc_state);
  void intel_dsc_get_config(struct intel_crtc_state *crtc_state);
  enum intel_display_power_domain
  intel_dsc_power_domain(struct intel_crtc *crtc, enum transcoder 
cpu_transcoder);

Reply via email to