[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190612192642.GK137143@google.com>
Date: Wed, 12 Jun 2019 12:26:42 -0700
From: Matthias Kaehlcke <mka@...omium.org>
To: Daniel Thompson <daniel.thompson@...aro.org>
Cc: Brian Norris <briannorris@...gle.com>, Pavel Machek <pavel@....cz>,
Enric Balletbo i Serra <enric.balletbo@...labora.com>,
Doug Anderson <dianders@...gle.com>,
Rob Herring <robh+dt@...nel.org>,
Jingoo Han <jingoohan1@...il.com>,
Richard Purdie <rpurdie@...ys.net>,
Jacek Anaszewski <jacek.anaszewski@...il.com>,
Guenter Roeck <groeck@...gle.com>,
Lee Jones <lee.jones@...aro.org>,
Alexandru Stan <amstan@...gle.com>, linux-leds@...r.kernel.org,
devicetree <devicetree@...r.kernel.org>,
Linux Kernel <linux-kernel@...r.kernel.org>,
kernel@...labora.com
Subject: Re: [PATCH v3 3/4] backlight: pwm_bl: compute brightness of LED
linearly to human eye.
Hi Daniel,
On Wed, Jun 12, 2019 at 12:03:25PM +0100, Daniel Thompson wrote:
> On Tue, Jun 11, 2019 at 03:30:19PM -0700, Matthias Kaehlcke wrote:
> > On Tue, Jun 11, 2019 at 09:55:30AM -0700, Brian Norris wrote:
> > > On Tue, Jun 11, 2019 at 3:49 AM Daniel Thompson
> > > <daniel.thompson@...aro.org> wrote:
> > > > This is a long standing flaw in the backlight interfaces. AFAIK generic
> > > > userspaces end up with a (flawed) heuristic.
> > >
> > > Bingo! Would be nice if we could start to fix this long-standing flaw.
> >
> > Agreed!
> >
> > How could a fix look like, a sysfs attribute? Would a boolean value
> > like 'logarithmic_scale' or 'linear_scale' be enough or could more
> > granularity be needed?
>
> Certainly "linear" (this device will work more or less correctly if the
> userspace applies perceptual curves). Not sure about logarithmic since
> what is actually useful is something that is "perceptually linear"
> (logarithmic is merely a way to approximate that).
>
> I do wonder about a compatible string like most-detailed to
> least-detailed description. This for a PWM with the auto-generated
> tables we'd see something like:
>
> cie-1991,perceptual,non-linear
>
> For something that is non-linear but we are not sure what its tables are
> we can offer just "non-linear".
Thanks for the feedback!
It seems clear that we want a string for the added flexibility. I can
work on a patch with the compatible string like description you
suggested and we can discuss in the review if we want to go with that
or prefer something else.
> > The new attribute could be optional (it only exists if explicitly
> > specified by the driver) or be set to a default based on a heuristic
> > if not specified and be 'fixed' on a case by case basis. The latter
> > might violate "don't break userspace" though, so I'm not sure it's a
> > good idea.
>
> I think we should avoid any heuristic! There are several drivers and we
> may not be able to work through all of them and make the correct
> decision.
Agreed
> Instead one valid value for the sysfs should be "unknown" and this be
> the default for drivers we have not analysed (this also makes it easy to
> introduce change here).
An "unknown" value sounds good, it allows userspace to just do what it
did/would hace done before this attribute existed.
> We should only set the property to something else for drivers that have
> been reviewed.
>
> There could be a special case for pwm_bl.c in that I'm prepared to
> assume that the hardware components downstream of the PWM have a
> roughly linear response and that if the user provided tables that their
> function is to provide a perceptually comfortable response.
Unfortunately this isn't universally true :(
At least several Chrome OS devices use a linear brightness scale and
userspace does the transformation in the animated slider. A quick
'git grep -A10 brightness-levels arch' suggests that there are
multiple other devices/platforms using a linear scale.
We could treat devices with a predefined brightness table as
"unknown", unless there is a (new optional) DT property that indicates
the type of the scale.
Cheers
Matthias
Powered by blists - more mailing lists