That works for me, thanks.

I’ve resent the commit with a new hash, 
https://gitlab.freedesktop.org/dyllan500/linux/-/commit/e1aa6f65150d606299eec5bf5a734e3b7c20c029.
 The only change is updating the author email to my work address for 
consistency with future contributions.

Dyllan Kobal

On Tuesday, May 5th, 2026 at 11:36 AM, Harry Wentland <[email protected]> 
wrote:

> Thanks for your fix, Dyllan, and for giving the series a spin.
> 
> Would you mind if I simply picked up your patch from 
> https://gitlab.freedesktop.org/dyllan500/linux/-/commit/560a1b22e4f764b8325e17f1d8f6dbbfd008e409
>  when I merge the series?
> 
> Harry
> 
> On 2026-05-02 10:08, Dyllan Kobal wrote:
> > [You don't often get email from [email protected]. Learn why this is 
> > important at https://aka.ms/LearnAboutSenderIdentification ]
> >
> > From: Dyllan Kobal <[email protected]>
> >
> > Hi Harry, Rodrigo, Jerry,
> >
> > Tested this series on Navi 22 (RX 6700 XT class, DCN 3.0.2) with a
> > Sony Bravia 8 II as the HDMI sink. Hit a NULL deref at amdgpu probe:
> >
> >   BUG: kernel NULL pointer dereference, address: 0000000000000000
> >   #PF: supervisor instruction fetch in kernel mode
> >   Oops: Oops: 0010 [#1] SMP NOPTI
> >   CPU: 14 UID: 0 PID: 568 Comm: (udev-worker) Not tainted 6.19.0+
> >   RIP: 0010:0x0
> >   Call Trace:
> >    <TASK>
> >    hdmi_frl_perform_link_training_with_fallback+0x64/0x110 [amdgpu]
> >    hdmi_frl_verify_link_cap+0x24e/0x5d0 [amdgpu]
> >    link_detect+0x4b4/0x550 [amdgpu]
> >    amdgpu_dm_initialize_drm_device+0x73f/0xb21 [amdgpu]
> >    amdgpu_dm_init.cold+0x734/0x86c [amdgpu]
> >    dm_hw_init+0x1b/0x90 [amdgpu]
> >    amdgpu_device_ip_init+0x690/0x7fe [amdgpu]
> >    amdgpu_device_init.cold+0x460/0x781 [amdgpu]
> >    amdgpu_driver_load_kms+0x19/0x80 [amdgpu]
> >    amdgpu_pci_probe+0x19b/0x550 [amdgpu]
> >
> > Cause: this patch wires .setup_hdmi_frl_link into the dcn314, dcn32,
> > dcn35, dcn351, dcn401 and dcn42 hwss tables, but not into dcn30's.
> > The dcn30 family (dcn30/302/303 — Navi 21/22/23) does get FRL
> > resource creation per patches 16/17, so hdmi_frl_verify_link_cap()
> > runs on these ASICs and dispatches through the NULL
> > hwss.setup_hdmi_frl_link inside 
> > hdmi_frl_perform_link_training_with_fallback().
> > amdgpu probe is fatally aborted with no display.
> >
> > Fix locally:
> >
> > --- a/drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_init.c
> > +++ b/drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_init.c
> > @@ -105,6 +105,7 @@ static const struct hw_sequencer_funcs dcn30_funcs = {
> >         .enable_tmds_link_output = dce110_enable_tmds_link_output,
> >         .enable_dp_link_output = dce110_enable_dp_link_output,
> >         .disable_link_output = dce110_disable_link_output,
> > +       .setup_hdmi_frl_link = dcn30_setup_hdmi_frl_link,
> >         .set_disp_pattern_generator = dcn30_set_disp_pattern_generator,
> >         .get_dcc_en_bits = dcn10_get_dcc_en_bits,
> >         .update_visual_confirm_color = dcn10_update_visual_confirm_color,
> >
> > With that one-line fix folded in, the Bravia comes up at 4K@120Hz
> > 10bpc RGB native FRL on cold boot. Live register state confirms the
> > HPO HDMI block is what is driving the link, not legacy TMDS:
> >
> >   - All legacy DIG[0-5] show DIG_BE_EN_CNTL.DIG_ENABLE = 0
> >   - All legacy SYMCLK[A-E] show CLOCK_ENABLE = 0
> >   - DIG0_HDMI_CONTROL.HDMI_DATA_SCRAMBLE_EN = 0
> >     (HDMI 2.0 TMDS scramble path is provably idle)
> >   - HPO_TOP_CLOCK_CONTROL.HPO_HDMISTREAMCLK_GATE_DIS = 1
> >     (HPO HDMI stream clock is forced on)
> >   - PHYASYMCLK_CLOCK_CNTL.PHYASYMCLK_FORCE_EN = 1,
> >     PHYASYMCLK_FORCE_SRC_SEL = 1 (FRL signaling source selected)
> >
> > Worth noting: the public dcn_3_0_2 ASIC register headers in tree do
> > not expose any of the HPO HDMI / HDMI_FRL_ENC / HDMI_LINK_ENC
> > register offsets — they only define HPO_HDMISTREAMCLK_GATE_DIS as a
> > single bit field inside HPO_TOP_CLOCK_CONTROL. Despite that, the
> > silicon clearly decodes the rest of the block (the relative offsets
> > from dcn_3_1_2 evidently land at usable addresses on dcn_3_0_2).
> > This is the first time, to my knowledge, that native HDMI 2.1 FRL
> > has been demonstrated working on a Navi 22-class card on Linux.
> >
> > Happy to retest a v2 if you fold the fix in.
> >
> > Reported-by: Dyllan Kobal <[email protected]>
> > Tested-by: Dyllan Kobal <[email protected]>  # Navi 22 + Bravia 8 II, 4K@120 
> > 10bpc RGB
> >
> > Thanks,
> > -Dyllan
> >
> 
>

Reply via email to