[PATCH v2 1/2] drm/amd/display: Fix AMDGPU_MAX_BL_LEVEL value

Alex Deucher alexdeucher at gmail.com
Mon Jun 23 17:36:06 UTC 2025


On Mon, Jun 23, 2025 at 1:12 PM Mario Limonciello
<mario.limonciello at amd.com> wrote:
>
> [Why]
> commit 16dc8bc27c2aa ("drm/amd/display: Export full brightness range to
> userspace") adjusted the brightness range to scale to larger values, but
> missed updating AMDGPU_MAX_BL_LEVEL which is needed to make sure that
> scaling works properly with custom brightness curves.
>
> [How]
> As the change for max brightness of 0xFFFF only applies to devices
> supporting DC, use existing DC define MAX_BACKLIGHT_LEVEL.
>
> Fixes: 16dc8bc27c2aa ("drm/amd/display: Export full brightness range to userspace")
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
> v2:
>  * Use DC define instead
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index a139da1c47af..77302caaf24a 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4689,7 +4689,7 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev)
>  }
>
>  #define AMDGPU_DM_DEFAULT_MIN_BACKLIGHT 12
> -#define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT 255
> +#define AMDGPU_DM_DEFAULT_MAX_BACKLIGHT MAX_BACKLIGHT_LEVEL
>  #define AMDGPU_DM_MIN_SPREAD ((AMDGPU_DM_DEFAULT_MAX_BACKLIGHT - AMDGPU_DM_DEFAULT_MIN_BACKLIGHT) / 2)
>  #define AUX_BL_DEFAULT_TRANSITION_TIME_MS 50
>
> @@ -4751,16 +4751,16 @@ static int get_brightness_range(const struct amdgpu_dm_backlight_caps *caps,
>         return 1;
>  }
>
> -/* Rescale from [min..max] to [0..AMDGPU_MAX_BL_LEVEL] */
> +/* Rescale from [min..max] to [0..MAX_BACKLIGHT_LEVEL] */
>  static inline u32 scale_input_to_fw(int min, int max, u64 input)
>  {
> -       return DIV_ROUND_CLOSEST_ULL(input * AMDGPU_MAX_BL_LEVEL, max - min);
> +       return DIV_ROUND_CLOSEST_ULL(input * MAX_BACKLIGHT_LEVEL, max - min);
>  }
>
> -/* Rescale from [0..AMDGPU_MAX_BL_LEVEL] to [min..max] */
> +/* Rescale from [0..MAX_BACKLIGHT_LEVEL] to [min..max] */
>  static inline u32 scale_fw_to_input(int min, int max, u64 input)
>  {
> -       return min + DIV_ROUND_CLOSEST_ULL(input * (max - min), AMDGPU_MAX_BL_LEVEL);
> +       return min + DIV_ROUND_CLOSEST_ULL(input * (max - min), MAX_BACKLIGHT_LEVEL);
>  }
>
>  static void convert_custom_brightness(const struct amdgpu_dm_backlight_caps *caps,
> @@ -4980,7 +4980,7 @@ amdgpu_dm_register_backlight_device(struct amdgpu_dm_connector *aconnector)
>                 drm_dbg(drm, "Backlight caps: min: %d, max: %d, ac %d, dc %d\n", min, max,
>                         caps->ac_level, caps->dc_level);
>         } else
> -               props.brightness = props.max_brightness = AMDGPU_MAX_BL_LEVEL;
> +               props.brightness = props.max_brightness = MAX_BACKLIGHT_LEVEL;
>
>         if (caps->data_points && !(amdgpu_dc_debug_mask & DC_DISABLE_CUSTOM_BRIGHTNESS_CURVE))
>                 drm_info(drm, "Using custom brightness curve\n");
> --
> 2.49.0
>


More information about the amd-gfx mailing list