<div dir="ltr">On Thu, Feb 23, 2017 at 12:40 AM, Jani Nikula <span dir="ltr"><<a href="mailto:jani.nikula@linux.intel.com" target="_blank">jani.nikula@linux.intel.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, 22 Feb 2017, Stéphane Marchesin <<a href="mailto:stephane.marchesin@gmail.com">stephane.marchesin@gmail.com</a>> wrote:<br>
> On Fri, Feb 17, 2017 at 4:58 AM, Martin Peres<br>
> <<a href="mailto:martin.peres@linux.intel.com">martin.peres@linux.intel.com</a>> wrote:<br>
</span><span class="">>> If the KMS property exposes a fixed number of steps (say 100), it becomes<br>
>> easy for the userspace to express the wanted brightness. However, on drivers<br>
>> exposing less than these 100 steps, we cannot guarantee that any change in<br>
>> the value will produce any change. If there is only one possible value (on<br>
>> or off), the user may be trying the change the brightness, a GUI would show<br>
>> what is the expected backlight state, but no change in the luminance would<br>
>> be seen, which is pretty bad.<br>
><br>
> Yes, I don't think we want to normalize anything here. It would<br>
> essentially be hiding functionality from user space, which then can't<br>
> expose it in the user interface. As you say, if the backlight slider<br>
> moves, but the backlight level didn't change, that's weird. On the<br>
> other hand if user space knows the number of levels it can give you a<br>
> consistent slider, and normalizing in user space is not that hard<br>
> (that's how things currently work after all, so people should be used<br>
> to it).<br>
<br>
</span>I listed some of the benefits of normalizing (or re-ranging) in<br>
[1]. Conversely, I haven't seen good answers on how to gracefully handle<br>
the brightness range changing on the fly. That is what not normalizing<br>
would mean. I don't think the current property implementation even<br>
allows changing the range. And then there'd have to be a way to tell the<br>
userspace that the range has changed.<br>
<br>
In the same message, I mentioned the idea of providing an API to<br>
increase/decrease brightness. That might be much easier to implement<br>
than allowing the property range change.<br>
<br>
[1] <a href="http://marc.info/?i=87mvdei7ug.fsf@intel.com" rel="noreferrer" target="_blank">http://marc.info/?i=<wbr>87mvdei7ug.fsf@intel.com</a><span class=""><br></span></blockquote><div><br></div><div>As a consumer of this API, I need the step size. If the max changes and we have a normalization, then the step size changes, and we run into the same exact set of problems where now "+5" means something completely different and I need to know that.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
> Yes the ability to turn off the backlight is important. Some<br>
> backlights are not stable at low levels, so they don't expose these<br>
> low levels and effectively level 0 is not off (it is the lowest level<br>
> which works). So I guess the question is how should that non-linearity<br>
> be exposed versus the ability to turn it off completely.<br>
<br>
</span>You fail to say *why* the ability to turn off the backlight is<br>
important. I've seen it used as a kind of "light DPMS" that can be done<br>
using the sysfs interface, but I think that's a hack, really. Here,<br>
whoever changes the backlight would be doing it using the DRM APIs<br>
anyway, so it could do actual DPMS anyway. And, of course, not all<br>
backlight hardware is able to switch off the backlight, and not all<br>
drivers will be able to say whether 0 is off or not.<br>
<span class=""><br>
>> The backlight_current interface in the backlight devices is meant to expose<br>
>> the currently-used backlight value, regardless of the wanted value that<br>
>> should be used when the backlight is not off.<br>
>><br>
>> My current stance on this is that this should not be needed. The userspace<br>
>> should describe the intent of the user (wanted backlight level) and trust<br>
>> the KMS property to turn off the backlight when entering DPMS.<br>
><br>
> Are we saying that we are putting the kernel in charge of  display vs<br>
> backlight sequencing? Currently on some ARM boards with separate pwm<br>
> backlight drivers that's not the case. Don't get me wrong, I think the<br>
> kernel should be in charge of enforcing sequencing because otherwise<br>
> user space can damage hardware, I'm just pointing out that right now<br>
> it isn't the case.<br>
<br>
</span>Whenever the kernel is able to enforce the sequencing, it should. I<br>
believe this is the case for most native backlight implementations. And<br>
in these cases the backlight on/off toggling would really have to be a<br>
substate of enabled display; can't enable backlight without display<br>
enabled.<br>
<span class="im HOEnZb"><br>
BR,<br>
Jani.<br>
<br>
<br>
--<br>
Jani Nikula, Intel Open Source Technology Center<br>
</span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
dri-devel mailing list<br>
<a href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.<wbr>org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/dri-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/dri-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">  Jasper<br></div>
</div></div>