[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190611215859.GF137143@google.com>
Date: Tue, 11 Jun 2019 14:58:59 -0700
From: Matthias Kaehlcke <mka@...omium.org>
To: Pavel Machek <pavel@....cz>
Cc: Lee Jones <lee.jones@...aro.org>,
Daniel Thompson <daniel.thompson@...aro.org>,
Jingoo Han <jingoohan1@...il.com>,
Jacek Anaszewski <jacek.anaszewski@...il.com>,
Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Thierry Reding <thierry.reding@...il.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Enric Balletbo i Serra <enric.balletbo@...labora.com>,
dri-devel@...ts.freedesktop.org, linux-leds@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-pwm@...r.kernel.org, linux-fbdev@...r.kernel.org,
Douglas Anderson <dianders@...omium.org>,
Brian Norris <briannorris@...omium.org>
Subject: Re: [PATCH 2/2] backlight: pwm_bl: Get number of brightness levels
for CIE 1931 from the device tree
Hi Pavel,
On Tue, Jun 11, 2019 at 12:18:43PM +0200, Pavel Machek wrote:
> On Mon 2019-06-10 16:37:39, Matthias Kaehlcke wrote:
> > Commit 88ba95bedb79 ("backlight: pwm_bl: Compute brightness of LED
> > linearly to human eye") uses pwm_period / hweight32(pwm_period) as
> > as heuristic to determine the number of brightness levels when the DT
> > doesn't provide a brightness level table. This heuristic is broken
> > and can result in excessively large brightness tables.
> >
> > Instead of using the heuristic try to retrieve the number of
> > brightness levels from the device tree (property 'max-brightness'
> > + 1). If the value is not specified use a default of 256 levels.
> >
> > Fixes: 88ba95bedb79 ("backlight: pwm_bl: Compute brightness of LED linearly to human eye")
>
> I don't think this one is suitable for stable. I'm pretty sure the
> heuristics works well for many boards, and you just replaced it with
> another heuristics ("256").
whether the patch is suitable for stable/upstream is certainly
debatable, in any case I'd argue the current heuristic is bogus and
works by accident or at a cost:
nlevels = period / hweight(period)
w/ period = 131071 ns (0x1FFFF)
nlevels = 131071 / 17 = 7710
w/ period = 131072 ns (0x20000)
nlevels = 131072 / 1 = 131072
and some PWMs use significantly higher periods like 1 ms or 10 ms.
Powered by blists - more mailing lists