]> www.infradead.org Git - users/hch/configfs.git/commit
drm/amd/display: Avoid -Wenum-float-conversion in add_margin_and_round_to_dfs_grainul...
authorNathan Chancellor <nathan@kernel.org>
Wed, 24 Apr 2024 16:14:02 +0000 (09:14 -0700)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 2 May 2024 19:38:16 +0000 (15:38 -0400)
commit2fde4fdddc1f1a7dbdbf4faa27a3fb05e1b2cc85
treeba636928a769f3dfa5ffe6afeedec10d2ba1c9eb
parentd17846a096b3127e6b3d4164874385cbc39367c4
drm/amd/display: Avoid -Wenum-float-conversion in add_margin_and_round_to_dfs_grainularity()

When building with clang 19 or newer (which strengthened some of the
enum conversion warnings for C), there is a warning (or error with
CONFIG_WERROR=y) around doing arithmetic with an enumerated type and a
floating point expression.

  drivers/gpu/drm/amd/amdgpu/../display/dc/dml2/dml21/src/dml2_dpmm/dml2_dpmm_dcn4.c:181:58: error: arithmetic between enumeration type 'enum dentist_divider_range' and floating-point type 'double' [-Werror,-Wenum-float-conversion]
    181 |         divider = (unsigned int)(DFS_DIVIDER_RANGE_SCALE_FACTOR * (vco_freq_khz / clock_khz));
        |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
  1 error generated.

This conversion is expected due to the nature of the enumerated value
and definition, so silence the warning by casting the enumeration to an
integer explicitly to make it clear to the compiler.

Fixes: 70839da63605 ("drm/amd/display: Add new DCN401 sources")
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_dpmm/dml2_dpmm_dcn4.c