Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
Cc: <intel-gfx@lists.freedesktop.org>, <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 2/7] drm/i915/psr: Stop using intel_dsc_enabled_on_link to detect crtc DSC status
Date: Tue, 9 Jun 2026 16:45:57 +0300	[thread overview]
Message-ID: <aigZFb34-M_p-Tk-@ideak-desk.lan> (raw)
In-Reply-To: <20260608141124.144878-3-jouni.hogander@intel.com>

On Mon, Jun 08, 2026 at 05:11:19PM +0300, 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. Instead of intel_dsc_enabled_on_link
> check status directly from crtc->dsc.compression_enable.
> 
> Also rename intel_dsc_enabled_on_link as intel_fec_enabled_on_link.

The reason to track the DSC enabled state on the MST link as a whole was
to determine if that enabled state is compatible with enabling Panel
Replay anywhere on the same link, according to the restrictions
indicated by the branch device via

DP_PANEL_REPLAY_CAP_CAPABILITY 0xb1

For instance, if there is only one branch device in a hub/dock, DSC will
be enabled for the branch device as a whole (via DSC_ENABLE 0x160) if
any stream is compressed, while there could be other uncompressed
streams going through the same branch device. Based on the definition of
the DP_PANEL_REPLAY_CAP_CAPABILITY register, enabling the Panel Replay
on any streams via the branch device - including the uncompressed
streams - should be done considering the branch device's enabled DSC
mode. IOW, enabling Panel Replay on an uncompressed stream through the
branch device should consider any stream in compressed mode through the
same branch device.

The above is in contrast to the case where DSC/Panel Replay of each of
the DFP connectors of the hub can be controlled via a per-DFP
peer-to-peer branch device.

> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  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);
> -- 
> 2.43.0
> 

  parent reply	other threads:[~2026-06-09 13:46 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-08 14:11 [PATCH 0/7] Enable FEC when using DP Panel Replay Jouni Högander
2026-06-08 14:11 ` [PATCH 1/7] drm/i915/psr: Check FEC support for " Jouni Högander
2026-06-09 11:29   ` Nautiyal, Ankit K
2026-06-08 14:11 ` [PATCH 2/7] drm/i915/psr: Stop using intel_dsc_enabled_on_link to detect crtc DSC status Jouni Högander
2026-06-09 12:14   ` Nautiyal, Ankit K
2026-06-09 13:30     ` Hogander, Jouni
2026-06-09 13:45   ` Imre Deak [this message]
2026-06-18  6:04     ` Hogander, Jouni
2026-06-08 14:11 ` [PATCH 3/7] drm/i915/display: Rename compression_enabled_on_link and link_dsc_pipes Jouni Högander
2026-06-08 14:11 ` [PATCH 4/7] drm/i915/psr: Split PSR compute config Jouni Högander
2026-06-08 14:11 ` [PATCH 5/7] drm/i915/psr: Move DP/eDP Panel Replay compute config to pre " Jouni Högander
2026-06-08 14:11 ` [PATCH 6/7] drm/i915/psr: Add PSR specific " Jouni Högander
2026-06-08 14:11 ` [PATCH 7/7] drm/i915/psr: Enable FEC if using DP Panel Replay Jouni Högander
2026-06-08 14:29 ` ✗ CI.checkpatch: warning for Enable FEC when " Patchwork
2026-06-08 14:31 ` ✓ CI.KUnit: success " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aigZFb34-M_p-Tk-@ideak-desk.lan \
    --to=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox