Messages in this thread | | | Subject | Re: [PATCH 2/2] backlight: Add support for exposing backlight types | From | Richard Purdie <> | Date | Wed, 17 Feb 2010 22:51:24 +0000 |
| |
On Wed, 2010-02-17 at 16:39 -0500, Matthew Garrett wrote: > There may be multiple ways of controlling the backlight on a given > machine. Allow drivers to expose the type of interface they are providing, > making it possible for userspace to make appropriate policy decisions.
Firstly, I agree we need to solve this problem one way or another. I want to make that clear. We also need to make sure whatever solution we pick works for everyone and scales though.
What I'm interested in is how userspace is going to determine which driver(s) it should use?
BACKLIGHT_GPU > BACKLIGHT_PLATFORM > BACKLIGHT_FIRMWARE ?
or something looking at the device names as well along with some kind of "XXX is better than YYY"?
We should really have some indication of how these values can be interpreted in the kernel as documentation.
> + The type of interface controlled by <backlight>. > + "firmware": The driver uses a standard firmware interface > + "platform": The driver uses a platform-specific interface > + "gpu": The driver controls hardware registers directly
These descriptions really don't help me much. I can think of several "platform" backlight drivers which control hardware registers directly. When people see these described as "gpu", I can see bug reports coming in. Would "raw" be a better description?
I'm also wondering how we associate backlights to displays. Lets say I have a three output video card which has a backlight control for each connected output. "gpu" isn't going to help me much and I suspect the framebuffer association code already in the backlight class won't help much either since nobody uses it and the framebuffer interfaces are mostly replaced with drm on desktops/laptops? Do we have any plans on how to handle this - its certainly a related problem.
As an aside for the patch itself, I'd like a note about the list of strings in backlight.c needing to be in sync with the ENUM.
Cheers,
Richard
| |