Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915/dp: Fix FRL rate selection and deep color for HDMI sinks behind FRL PCONs
@ 2026-06-10 17:44 Alexander Kaplan
  2026-06-10 17:44 ` [PATCH 1/3] drm/i915/dp: Prefer DSC over a 6 bpc uncompressed output Alexander Kaplan
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Alexander Kaplan @ 2026-06-10 17:44 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: Ankit Nautiyal, Ville Syrjälä, Imre Deak,
	Chaitanya Kumar Borah, Nicolas Frattaroli, Jani Nikula,
	Rodrigo Vivi, alexander.kaplan

HDMI 2.1 sinks behind a DP to HDMI 2.1 PCON are currently limited to
8bpc, and the FRL link often trains below what the hardware supports,
because

 1) the sink's DSC max FRL rate caps the trained FRL rate even when
    the PCON has no DSC encoder and thus never produces compressed
    transport, and

 2) the bpc computation validates HDMI sinks behind a branch device
    against the sink's TMDS character rate limits even when the video
    is transmitted over FRL.

On a Panther Lake NUC (xe) with a Synaptics VMM7100 PCON and an LG
OLED G4 (Max_FRL_Rate 48 Gbps, DSC_Max_FRL_Rate 24 Gbps, max TMDS
character rate 600 MHz) this means: FRL trains at 24 instead of
48 Gbps and 4k60 is limited to RGB 8bpc, while Windows (RGB 10bpc,
FRL 40G) and macOS (RGB 12bpc, FRL 48G) drive the same hardware with
deep color.

Patch 2 applies the sink's DSC max FRL rate only when the PCON
actually has a DSC 1.2 encoder (the gate intel_dp_pcon_dsc_configure()
already uses).
Patch 3 makes intel_dp_hdmi_compute_bpc() validate the required
bandwidth against the FRL bandwidth the link will be trained with,
instead of the TMDS limits, for FRL-capable PCON+sink combos.

Patch 1 makes the link config prefer DSC over a dithered 6 bpc
uncompressed output.
This is a quality improvement on its own, but it is also ordered
first for bisectability.
Patches 2 and 3 open up RGB configurations on FRL links for which
previously only the YCbCr 4:2:0 fallback existed, and modes which fit
such a link uncompressed only with 6 bpc (e.g. 4k120 on a 4 lane HBR3
link) would then select an RGB 6 bpc output.
The tested Synaptics PCONs (two device families) cannot display a
6 bpc stream at such pixel clocks, so without patch 1 this would
trade the previous 4:2:0 picture for a black screen.

With the full series the setup above runs 4k60 at RGB 12bpc with HDR
at FRL 48G, and 4k120 at RGB 12bpc (DSC, both SDR and HDR), stable
across modesets, hotplugs and suspend/resume.
This was also verified on a second Synaptics PCON device family (a
TBT4 dock, SYNAa) and against a VMM7100 with a DP branch ID (where
the HDMI paths stay inert).

A related observation, left for a separate change:
intel_dp_mode_valid_downstream() checks the FRL bandwidth only
against the PCON's limit (not the sink's max FRL rate from the EDID)
and skips the TMDS/dotclock checks even for non-FRL sinks behind an
FRL capable PCON.
Aligning it with the limit used in patch 3 would make .mode_valid()
pruning consistent with the compute path.

This series is the first part of a set of independent fixes for the
USB-C to DP to HDMI 2.1 protocol converter (PCON) path, found and
verified on an ASUS NUC 16 Pro (Panther Lake, xe driver) driving an
LG OLED TV through Synaptics VMM7100 based adapters.
Two dongle firmware lines and a TB4 dock were tested.
Each series/patch stands on its own and can be merged independently.
This series targets drm-intel, the DP helper patches of the set
target drm-misc.

The other parts, to follow shortly:
  drm/dp: Avoid RBR on Synaptics VMM7100 PCONs failing channel EQ
  drm/dp: Read the PCON max FRL bandwidth only for HDMI DFPs
  drm/dp: Service the CEC tunneling IRQ flags without CEC_IRQ in ESI1

Alexander Kaplan (3):
  drm/i915/dp: Prefer DSC over a 6 bpc uncompressed output
  drm/i915/dp: Ignore the sink's DSC max FRL rate without a PCON DSC
    encoder
  drm/i915/dp: Check FRL bandwidth limits in the HDMI bpc computation

 drivers/gpu/drm/i915/display/intel_dp.c | 58 ++++++++++++++++++++++++-
 1 file changed, 56 insertions(+), 2 deletions(-)

-- 
2.54.0



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-06-30 13:18 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox