On 2026-07-16 22:43, Fangzhi Zuo wrote:
> [why]
> DSC over HDMI FRL (e.g. 4k144) was pruned by DML mode support
> because the compressed FRL cap check was never reached.
> 
> dml32_TruncToValidBPP() validates the FRL output by calling
> dml1_frl_cap_chk_inter() directly. The compressed-vs-uncompressed
> dispatch (if params->compressed -> dml1_frl_cap_chk_compressed()) had
> been moved up into the top-level dml1_frl_cap_chk() wrapper, leaving
> dml1_frl_cap_chk_inter() as uncompressed-only. As a result a DSC stream
> routed through TruncToValidBPP was validated against the full
> uncompressed bandwidth, failed the cap check, and the mode was pruned
> (vlevel == num_states).
> 
> [how]
> Move the compressed dispatch back into dml1_frl_cap_chk_inter() so every
> caller of _inter() (including TruncToValidBPP) honours params->compressed.
> This matches the internal DAL tree.
> 
> Signed-off-by: Fangzhi Zuo <[email protected]>

Reviewed-by: Harry Wentland <[email protected]>

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/dml/dml1_frl_cap_chk.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/dml/dml1_frl_cap_chk.c 
> b/drivers/gpu/drm/amd/display/dc/dml/dml1_frl_cap_chk.c
> index 260f58a97fc7..da2c92e5c02f 100644
> --- a/drivers/gpu/drm/amd/display/dc/dml/dml1_frl_cap_chk.c
> +++ b/drivers/gpu/drm/amd/display/dc/dml/dml1_frl_cap_chk.c
> @@ -630,17 +630,17 @@ enum frl_cap_chk_result dml1_frl_cap_chk(struct 
> frl_cap_chk_params *params)
>  {
>       struct frl_cap_chk_intermediates inter;
>  
> -#if defined (CONFIG_DRM_AMD_DC_FP)
> -     if (params->compressed)
> -             return dml1_frl_cap_chk_compressed(params, &inter);
> -#endif
> -
>       return dml1_frl_cap_chk_inter(params, &inter);
>  }
>  
>  enum frl_cap_chk_result dml1_frl_cap_chk_inter(struct frl_cap_chk_params 
> *params,
>                                              struct frl_cap_chk_intermediates 
> *inter)
>  {
> +#if defined (CONFIG_DRM_AMD_DC_FP)
> +     if (params->compressed)
> +             return dml1_frl_cap_chk_compressed(params, inter);
> +#endif
> +
>       return dml1_frl_cap_chk_uncompressed(params, inter);
>  }
>  

Reply via email to