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

Reply via email to