Hi - apologies for missing the patch previously, and thank you for bringing this to my attention!
Would you mind re-sending with the original authorship + a Co-authored- by tag for yourself to make sure we give the original author credit? On Thu, 2026-09-17 at 13:50 +0000, Tano Dzhinski wrote: > nv50_hdmi_enable() passes the sink's SCDC capability from its EDID > straight through to nvif_outp_hdmi(). On pre-Maxwell-2 cards there is > no > hdmi->scdc callback, so nvkm_uoutp_mthd_hdmi() rejects the whole > configuration with -EINVAL, and nv50_hdmi_enable() returns before > hdmi->ctrl() runs and before the AVI and VSI infoframes are sent. > > The result on such a card driving an SCDC-capable HDMI 2.0 sink is > that > HDMI audio silently stops working. Video is unaffected, and nothing > is > logged, which makes the failure hard to attribute. > > SCDC is optional, and the hdmi->scdc() call further down is already > guarded against a missing callback. Requesting it on a card that > cannot > do it need not invalidate the rest of the HDMI configuration, so drop > that term from the condition and let the existing guard skip SCDC > alone. > > Giuseppe Ranieri posted a fix for this to the nouveau list on > 2026-01-17, which received no review: > https://ratatoskr.run/nouveau/2026/01/16963412 > > Fixes: 6c6abab20b99 ("drm/nouveau/disp: add output hdmi config > method") > Signed-off-by: Tano Dzhinski <[email protected]> > --- > drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c > b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c > index 377d0e0cef84..9887b3898505 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c > +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c > @@ -253,8 +253,7 @@ nvkm_uoutp_mthd_hdmi(struct nvkm_outp *outp, void > *argv, u32 argc) > > if (!ior->func->hdmi || > args->v0.max_ac_packet > 0x1f || > - args->v0.rekey > 0x7f || > - (args->v0.scdc && !ior->func->hdmi->scdc)) > + args->v0.rekey > 0x7f) > return -EINVAL; > > if (!args->v0.enable) {
