Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [High] The `gb202_sor_hdmi` structure omits the `.scdc` callback, which breaks HDMI 2.0+ (SCDC) support and high-bandwidth modes (like 4K@60Hz) on GB20x GPUs. - [Low] The patch assigns an undeclared function `r535_sor_frl_train` to a non-existent struct member `.frl_train` in `gb202_sor_hdmi`, causing a hard build failure. --
--- Patch [2]: [PATCH 2/7] nouveau/gsp: fix HDMI vendor infoframes on GB20x --- commit bab0e0425109e6d57a40d900a50e9f7f22ac57de Author: Mohamed Ahmed <[email protected]> nouveau/gsp: fix HDMI vendor infoframes on GB20x This commit selects the SOR functions per GPU family in r535_sor_new() based on the display root class. It introduces gb202_sor_hdmi to use the new generic-infoframe VSI writer on GB20x GPUs. > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > index e77733a5d9c3c..6b78619840c9c 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/disp.c [ ... ] > @@ -587,6 +589,16 @@ r535_sor_hdmi = { > .audio = r535_sor_hdmi_audio, > }; > > +static const struct nvkm_ior_func_hdmi > +gb202_sor_hdmi = { > + .ctrl = r535_sor_hdmi_ctrl, > + /* The legacy AVI unit is unchanged on GB20x. */ > + .infoframe_avi = gv100_sor_hdmi_infoframe_avi, > + .infoframe_vsi = gb202_sor_hdmi_infoframe_vsi, > + .audio = r535_sor_hdmi_audio, [Severity: High] Does this initialization omit the .scdc callback mapping? Looking at nvkm_uoutp_mthd_hdmi(), if userspace requests a high-bandwidth mode that depends on SCDC scrambling, the modeset aborts if the callback is missing: drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.c:nvkm_uoutp_mthd_hdmi() { if (!ior->func->hdmi || args->v0.max_ac_packet > 0x1f || args->v0.rekey > 0x7f || (args->v0.scdc && !ior->func->hdmi->scdc)) return -EINVAL; ... } Can this result in broken HDMI output or black screens for high-bandwidth modes (like 4K@60Hz) on GB20x GPUs? > + .frl_train = r535_sor_frl_train, [Severity: Low] Does this cause a build failure? Looking at the definition of struct nvkm_ior_func_hdmi in drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h, it does not contain a .frl_train member. Additionally, it appears r535_sor_frl_train is undeclared in this scope. > +}; -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=2
