Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] amd/display: Implicit cast of unsigned int to bool in is_gfx11 breaks GFX12 --
commit 6cadd8de043129ed240d5c445ed5c65b848832cc Author: Avi Weiss <[email protected]> drm/amd/display: Initialize missing TD-LUT programming inputs This commit aligns the mode programming path with the mode support path by explicitly initializing tdlut_mpc_width_flag and is_gfx11 inputs in dml_core_mode_programming() for DCN401 sources. Fixes: 70839da63605 ("drm/amd/display: Add new DCN401 sources") > diff --git > a/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c > > b/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c > --- > a/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c > +++ > b/drivers/gpu/drm/amd/display/dc/dml2_0/dml21/src/dml2_core/dml2_core_dcn4_calcs.c > @@ -11052,6 +11052,8 @@ static bool dml_core_mode_programming(struct > dml2_core_calcs_mode_programming_ex > calculate_tdlut_setting_params->cursor_buffer_size = > mode_lib->ip.cursor_buffer_size; > calculate_tdlut_setting_params->gpuvm_enable = > display_cfg->gpuvm_enable; > calculate_tdlut_setting_params->gpuvm_page_size_kbytes = > display_cfg->plane_descriptors[k].overrides.gpuvm_min_page_size_kbytes; > + calculate_tdlut_setting_params->tdlut_mpc_width_flag = > display_cfg->plane_descriptors[k].tdlut.tdlut_mpc_width_flag; > + calculate_tdlut_setting_params->is_gfx11 = > dml_get_gfx_version(display_cfg->plane_descriptors[k].surface.tiling); [Severity: High] This problem wasn't introduced by this patch, but it appears this copies an existing bug from dml_core_mode_support() into dml_core_mode_programming(). Looking at dml_get_gfx_version(), it returns an unsigned int 12 for GFX12 swizzle modes. When this result is assigned directly to the boolean field is_gfx11, it will evaluate to true because any non-zero integer is true in C. Could this cause GFX12 hardware to incorrectly use GFX11 TD-LUT pitch alignment (like 256B instead of 128B), leading to display corruption? Would it be better to use an explicit equality check here and in the mode support path, such as: is_gfx11 = (dml_get_gfx_version(...) == 11); -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=1
