[Intel-gfx] [PATCH] drm/i915: A better maximum brightness for users.

Jani Nikula jani.nikula at linux.intel.com
Mon Nov 9 08:57:22 PST 2015


On Mon, 09 Nov 2015, Paulo Zanoni <przanoni at gmail.com> wrote:
> 2015-11-09 8:17 GMT-02:00 Jani Nikula <jani.nikula at linux.intel.com>:
>> On Mon, 09 Nov 2015, "Shih-Yuan Lee (FourDollars)" <sylee at canonical.com> wrote:
>>> The PWM brightness level of Dell XPS 13 (2015) is from 10 to 937 however
>>> the sysfs brightness level always starts from 0 so it is better to use
>>> 927 as the sysfs maximum brightness level and it becomes easier to map
>>> from the PWM brightness level to the sysfs brightness level.
>>
>> We've been thinking we should provide a fixed range to userspace
>> instead. Say, 0-100.
>
> While not clearly stated, this reply and the further ones sound like a
> rejection to his patch.

I wanted to understand the motivation rather than bluntly rejecting.

> I'm not really an expert on backlight, but his idea sounds simple and
> an overall improvement to the codebase. I don't think it's fair to
> block a simple one-line improvement based on the fact that we have an
> idea (that may or may not be implemented) for a possibly better
> implementation. Why not apply his patch (in case we conclude it
> doesn't have any bugs), and then go for the 0-100 idea once someone
> actually decides to implement it?

The implementation is

diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index a24df35e11e7..d5d86601d411 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1211,7 +1211,7 @@ static int intel_backlight_device_register(struct intel_connector *connector)
 	 * Note: Everything should work even if the backlight device max
 	 * presented to the userspace is arbitrarily chosen.
 	 */
-	props.max_brightness = panel->backlight.max;
+	props.max_brightness = 100;
 	props.brightness = scale_hw_to_user(connector,
 					    panel->backlight.level,
 					    props.max_brightness);

and "just" testing is required.

> Besides, isn't there the possibility of having a panel that has a
> 0-9999 range where the change from 0 to 9990 is negligible, and only
> 9991-9999 matters, so when we scale to 0-100 it will become basically
> a on/off switch? We all learned to never underestimate panel hardware.

That's a somewhat more valid argument. The answer to that should be that
we map the userspace range to the hardware range according to a curve
rather than a linear mapping. See Ville's reply.

BR,
Jani.



>
>>
>> BR,
>> Jani.
>>
>>
>>
>>
>>>
>>> Signed-off-by: Shih-Yuan Lee (FourDollars) <sylee at canonical.com>
>>> ---
>>>  drivers/gpu/drm/i915/intel_panel.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
>>> index a24df35..697fd4d 100644
>>> --- a/drivers/gpu/drm/i915/intel_panel.c
>>> +++ b/drivers/gpu/drm/i915/intel_panel.c
>>> @@ -1211,7 +1211,7 @@ static int intel_backlight_device_register(struct intel_connector *connector)
>>>        * Note: Everything should work even if the backlight device max
>>>        * presented to the userspace is arbitrarily chosen.
>>>        */
>>> -     props.max_brightness = panel->backlight.max;
>>> +     props.max_brightness = panel->backlight.max - panel->backlight.min;
>>>       props.brightness = scale_hw_to_user(connector,
>>>                                           panel->backlight.level,
>>>                                           props.max_brightness);
>>
>> --
>> Jani Nikula, Intel Open Source Technology Center
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
>
> -- 
> Paulo Zanoni

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list