Re: RFC: Backlight Class sysfs attribute behaviour
flat view
From: Richard Purdie <hidden>
Date: 2006-03-06 08:45:45
Also in:
lkml
On Mon, 2006-03-06 at 09:00 +0800, Antonino A. Daplas wrote:
Why not just agree on a normal range of values (ie, 0-255), and let the driver "denormalize" them? Thus, a driver that has only 2 levels of brightness, will treat 0-127 as 0 and 128-255 as 1, and will return only two possible values 0 and 255. If a user requests max brightness (255), and the driver is capable of setting it, then it returns 255. But if for some reason it can't (ie low power state), it returns the current max brightness, normalized, (ie 128 instead of 255 and because that the scale is 0-255, a value of 128 tells the user that only half of max brightness was set).
We already have a max_brightness attribute and brightness can vary between 0 and max_brightness (hence avoiding scaling issues which we leave to userspace).
And instead of a new "driver_brightness" attribute, why not just a new attribute that returns the number of brightness levels?
The idea of the driver_brightness attribute is to separate the user
requested brightness value from the actual brightness value decided by
the driver. The driver determines the real brightness by combining:
* the user supplied power sysfs attribute
* the user supplied brightness sysfs attribute
* the current FB blanking state
* any other driver specific factors
At present, the user specified values through the sysfs attributes can
easily get lost as other factors overwrite it (FB blanking overwrites
user specified power for example). This leads to a class interface with
unpredictable behaviour.
I'm therefore suggesting separation of the values so each attribute
reads and writes in a predicable manner and the actual state determined
by the driver becomes a new readonly sysfs attribute
("driver_brightness" although I'm open to suggestions of a better name).
Richard
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642