On Tue, 24 Feb 2026, Suraj Kandpal <[email protected]> wrote:
> If the brightness fetched from VBT/previous state is 0 on backlight
> initialization, then set the brightness to a default/max value.
> Whenever the minimum brightness is reported as 0 there are chances
> we end up with blank screen. This confuses the user into thinking
> the display is acting weird. This occurs in eDP 1.5 when
> we are using PANEL_LUMINANCE_OVERRIDE mode to mainpulate brightness
> via luminance values.
>
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15671
> Signed-off-by: Suraj Kandpal <[email protected]>
> Reviewed-by: Arun R Murthy <[email protected]>
> ---
> v1 -> v2:
> - Let users set brightness to 0, make it so that it's just not
> done by default (Arun)
>
> v2 -> v3:
> -Update commit header and message (Arun)
>
>  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c 
> b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index eb05ef4bd9f6..c40ce310ad97 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -564,6 +564,8 @@ static int intel_dp_aux_vesa_setup_backlight(struct 
> intel_connector *connector,
>               }
>               panel->backlight.level = 
> intel_dp_aux_vesa_get_backlight(connector, 0);
>               panel->backlight.enabled = panel->backlight.level != 0;
> +             if (!panel->backlight.level)
> +                     panel->backlight.level = panel->backlight.max;

How does this help when .enabled is still based on level != 0 above?

>               drm_dbg_kms(display->drm,
>                           "[CONNECTOR:%d:%s] AUX VESA Nits backlight level is 
> controlled through DPCD\n",
>                           connector->base.base.id, connector->base.name);
> @@ -573,6 +575,8 @@ static int intel_dp_aux_vesa_setup_backlight(struct 
> intel_connector *connector,
>               if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) {
>                       panel->backlight.level = current_level;
>                       panel->backlight.enabled = panel->backlight.level != 0;
> +                     if (!panel->backlight.level)
> +                             panel->backlight.level = panel->backlight.max;

Ditto.

>               } else {
>                       panel->backlight.level = panel->backlight.max;
>                       panel->backlight.enabled = false;

-- 
Jani Nikula, Intel

Reply via email to