Hi,
incremental dimming can be easily implemented on top of this patch.
It's just about posting the timeout repeatedly. I will post something
in the near future :).
I believe the userspace vs kernelspace argument is very arbitrary.
As i said, the dimmer can be completely coded in userspace. There are
good reasons for that. Userspace apps can work out better than the
kernel what the user is doing. If the user is watching a movie for
instance, the dimmer should be stopped.
However, the patch is just a light addition to backlight.c. If the
dimmer is stopped/unused, just a few pointers and some code are wasted.
Userspace apps can start, stop and change the timeout value for the
dimmer on the fly, as if they were doing the dimming themselves. In
this case, userspace only notifies the kernel to stop the dimmer
whenever such action is deemed right. Instead when the dimmer is on,
which is most of the time, no kernespace/userspace switch is necessary.
Changing the brightness might occur every 10 seconds or so. IMHO this
is more of a realtime (and thus kernelspace) requirement rather than
userspace. This also saves us from having a whole (heavyweight)
dedicated process managing such a basic functionality.
Finally, implementing the dimmer in kernelspace delivers this
functionality everywhere provided Linux is used. No additional
software is necessary. This latter would usually have to be tailored
to different audiences such as desktop, embedded, whatever.
I don't think thunderbird is breaking the patch, since i was able to
apply it from my previous posts. However here is a web location for
it, just in case: http://www.antonello.org/dimmer/. Please let me know
if you can't test it!
jacopo
-