Re: [PATCH] backlight: pwm_bl: Fix heuristic to determine number of brightness levels

From: Matthias Kaehlcke
Date: Thu Jun 13 2019 - 11:48:52 EST


On Thu, Jun 13, 2019 at 11:14:55AM +0200, Enric Balletbo i Serra wrote:
> Hi Matthias,
>
> On 12/6/19 20:00, Matthias Kaehlcke wrote:
> > With commit 88ba95bedb79 ("backlight: pwm_bl: Compute brightness of
> > LED linearly to human eye") the number of set bits (aka hweight())
> > in the PWM period is used in the heuristic to determine the number
> > of brightness levels, when the brightness table isn't specified in
> > the DT. The number of set bits doesn't provide a reliable clue about
> > the length of the period, instead change the heuristic to:
> >
> > nlevels = period / fls(period)
> >
> > Also limit the maximum number of brightness levels to 4096 to avoid
> > excessively large tables.
> >
> > With this the number of levels increases monotonically with the PWM
> > period, until the maximum of 4096 levels is reached:
> >
> > period (ns) # levels
> >
> > 100 16
> > 500 62
> > 1000 111
> > 5000 416
> > 10000 769
> > 50000 3333
> > 100000 4096
> >
> > Fixes: 88ba95bedb79 ("backlight: pwm_bl: Compute brightness of LED linearly to human eye")
> > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx>
>
> Tested on Samsung Chromebook Plus (16-bit pwm)
>
> Tested-by: Enric Balletbo i Serra <enric.balletbo@xxxxxxxxxxxxx>

Thanks!