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