Re: [PATCH] drm/amd/display: Dispatch Compressed FRL Cap Check Inside dml1_frl_cap_chk_inter
Harry Wentland <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
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); > } >