The original implementation was 47356eb67285 in Sep 17, 2001. The condition
can't be replicated for now.
The condition for invalid brightness level includes the minimum available
value. It does not make sense. I've added the new condition in rev #5. Please
consider if the condition is workable.
- if (panel->backlight.level <= panel->backlight.min) {
+ if (panel->backlight.level < panel->backlight.min) {
Thanks,
Gareth
-----Original Message-----
From: Ville Syrjälä <[email protected]>
Sent: Friday, March 15, 2024 7:03 PM
To: Jani Nikula <[email protected]>
Cc: Yu, Gareth <[email protected]>; [email protected]
Subject: Re: [PATCH] drm/i915/display: Fixed a screen flickering when turning
on display from off
On Wed, Mar 06, 2024 at 12:19:42PM +0200, Jani Nikula wrote:
> On Wed, 06 Mar 2024, [email protected] wrote:
> > From: Gareth Yu <[email protected]>
> >
> > Turn on the panel from zero brightness of the last state, the panel
> > was set a maximum PWM in the flow. Once the panel initialization is
> > completed, the backlight is restored to zero brightness. There is a
> > flckering generated.
>
> Please be more precise in describing what exactly happens and when.
> Driver probe? Modeset? What restores backlight to zero brightness?
>
> Better yet, please file a bug at fdo gitlab, attach full dmesg with
> debugs, etc.
>
> Before we had the concept of minimum brightness, the minimum was
> always 0. And the check was:
>
> if (level == 0)
> level = max;
>
> Historically, the point was, if you're enabling the display and
> backlight, you don't want it to be at 0 brightness, because for most
> displays that means a black screen.
I think that hack was originally added becaue some silly userspace thingy was
setting the backlight level to 0 on suspend/etc. and then forgetting to restore
it back to a sane value afterwards. Dunno if that nonsense behaviour still
persists to this day.
--
Ville Syrjälä
Intel