From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Alexander Kaplan <alexander.kaplan@sms-medipool.de>,
<intel-gfx@lists.freedesktop.org>,
<intel-xe@lists.freedesktop.org>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>,
"Imre Deak" <imre.deak@intel.com>,
"Chaitanya Kumar Borah" <chaitanya.kumar.borah@intel.com>,
"Nicolas Frattaroli" <nicolas.frattaroli@collabora.com>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>
Subject: Re: [PATCH 2/3] drm/i915/dp: Ignore the sink's DSC max FRL rate without a PCON DSC encoder
Date: Mon, 29 Jun 2026 09:31:00 +0530 [thread overview]
Message-ID: <7f6ad39c-6093-4501-a40d-fd638ad1dfd6@intel.com> (raw)
In-Reply-To: <20260610174413.5881-3-alexander.kaplan@sms-medipool.de>
On 6/10/2026 11:14 PM, Alexander Kaplan wrote:
> intel_dp_hdmi_sink_max_frl() limits the sink's max FRL rate by its
> DSC max FRL rate whenever the sink supports DSC 1.2.
> However, the DSC max FRL rate (HF-VSDB DSC_Max_FRL_Rate) only applies
> to compressed video transport, which requires a DSC 1.2 encoder in
> the PCON (configured via intel_dp_pcon_dsc_configure()).
> Without such an encoder the HDMI link always carries uncompressed
> video, for which the regular Max_FRL_Rate is the correct limit.
>
> Applying the DSC limit unconditionally trains the FRL link at a lower
> rate than both the PCON and the sink support.
> E.g. an LG OLED G4 (Max_FRL_Rate 48 Gbps, DSC_Max_FRL_Rate 24 Gbps)
> behind a Synaptics VMM7100 PCON (PCON max FRL bw 48 Gbps, no DSC
> encoder):
>
> Sink max rate from EDID = 24 Gbps
> FRL trained with : 24 Gbps
>
> while Windows/macOS train the same hardware at 40/48 Gbps.
> The too low FRL rate needlessly constrains the formats available to
> the sink.
>
> Only apply the sink's DSC max FRL rate if the PCON has a DSC 1.2
> encoder, matching the gate in intel_dp_pcon_dsc_configure().
> PCONs with a DSC encoder keep the current conservative behavior,
> since the link is trained once and compressed transport may be used
> for any subsequent mode.
> With this the setup above trains at 48 Gbps.
>
> Tested on PTL (xe) with the above PCON/sink combo.
>
> Fixes: 10fec80b48c5 ("drm/i915/display: Configure PCON for DSC1.1 to DSC1.2 encoding")
> Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Alexander Kaplan <alexander.kaplan@sms-medipool.de>
> ---
> drivers/gpu/drm/i915/display/intel_dp.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 13cfccf60490..2831b274d88a 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -4254,7 +4254,14 @@ static int intel_dp_hdmi_sink_max_frl(struct intel_dp *intel_dp)
> rate_per_lane = info->hdmi.max_frl_rate_per_lane;
> max_frl_rate = max_lanes * rate_per_lane;
>
> - if (info->hdmi.dsc_cap.v_1p2) {
> + /*
> + * The sink's DSC max FRL rate only applies to compressed video
> + * transport, which requires a DSC 1.2 encoder in the PCON. Without
> + * one the HDMI link always carries uncompressed video, for which
> + * the regular max FRL rate is the limit.
> + */
> + if (drm_dp_pcon_enc_is_dsc_1_2(intel_dp->pcon_dsc_dpcd) &&
> + info->hdmi.dsc_cap.v_1p2) {
Yes, this is very much needed.
This condition could be factored into a separate helper, but that can be
a separate patch.
Patch looks good to me as it is.
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> max_dsc_lanes = info->hdmi.dsc_cap.max_lanes;
> dsc_rate_per_lane = info->hdmi.dsc_cap.max_frl_rate_per_lane;
> if (max_dsc_lanes && dsc_rate_per_lane)
next prev parent reply other threads:[~2026-06-29 4:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-10 17:44 [PATCH 0/3] drm/i915/dp: Fix FRL rate selection and deep color for HDMI sinks behind FRL PCONs Alexander Kaplan
2026-06-10 17:44 ` [PATCH 1/3] drm/i915/dp: Prefer DSC over a 6 bpc uncompressed output Alexander Kaplan
2026-06-12 16:32 ` Imre Deak
2026-06-12 18:46 ` Alexander Kaplan
2026-06-29 3:59 ` Nautiyal, Ankit K
2026-06-10 17:44 ` [PATCH 2/3] drm/i915/dp: Ignore the sink's DSC max FRL rate without a PCON DSC encoder Alexander Kaplan
2026-06-29 4:01 ` Nautiyal, Ankit K [this message]
2026-06-10 17:44 ` [PATCH 3/3] drm/i915/dp: Check FRL bandwidth limits in the HDMI bpc computation Alexander Kaplan
2026-06-29 4:16 ` Nautiyal, Ankit K
2026-06-10 17:49 ` [PATCH 0/3] drm/i915/dp: Fix FRL rate selection and deep color for HDMI sinks behind FRL PCONs Alexander Kaplan
2026-06-10 18:45 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
2026-06-30 0:16 ` ✓ CI.KUnit: success for drm/i915/dp: Fix FRL rate selection and deep color for HDMI sinks behind FRL PCONs (rev2) Patchwork
2026-06-30 0:53 ` ✓ Xe.CI.BAT: " Patchwork
2026-06-30 13:18 ` ✓ Xe.CI.FULL: " 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=7f6ad39c-6093-4501-a40d-fd638ad1dfd6@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=alexander.kaplan@sms-medipool.de \
--cc=chaitanya.kumar.borah@intel.com \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=nicolas.frattaroli@collabora.com \
--cc=rodrigo.vivi@intel.com \
--cc=ville.syrjala@linux.intel.com \
/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