mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
backlight: Do not clamp brightness for LEDs
https://bugs.freedesktop.org/show_bug.cgi?id=77092 On Thu, Jun 05, 2014 at 08:37:20AM +0200, Lennart Poettering wrote: > The patch is line-broken, please send an uncorrupted patch! I am very sorry, I forgot that my client limits line width. I will use mutt now on. > clamp_brightness() clamps the brightness value to the range of the > actual device. This is a recent addition that was added to deal with > driver updates where the resolution is changed. I don't think this part > should be dropped for LED devices. The clamp_brightness() call hence > should be called unconditionally, however, internally it should use a > different min_brightness value if something is an !backlight devices... Thank you for explanation, this sounds very reasonable to me. Please, see updated patch:
This commit is contained in:
parent
51cb9d734a
commit
4cd2b2cf8c
Notes:
Lennart Poettering
2014-06-11 13:11:09 +02:00
Backport: bugfix
@ -225,11 +225,13 @@ static unsigned get_max_brightness(struct udev_device *device) {
|
||||
|
||||
/* Some systems turn the backlight all the way off at the lowest levels.
|
||||
* clamp_brightness clamps the saved brightness to at least 1 or 5% of
|
||||
* max_brightness. This avoids preserving an unreadably dim screen, which
|
||||
* would otherwise force the user to disable state restoration. */
|
||||
* max_brightness in case of 'backlight' subsystem. This avoids preserving
|
||||
* an unreadably dim screen, which would otherwise force the user to
|
||||
* disable state restoration. */
|
||||
static void clamp_brightness(struct udev_device *device, char **value, unsigned max_brightness) {
|
||||
int r;
|
||||
unsigned brightness, new_brightness, min_brightness;
|
||||
const char *subsystem;
|
||||
|
||||
r = safe_atou(*value, &brightness);
|
||||
if (r < 0) {
|
||||
@ -237,7 +239,12 @@ static void clamp_brightness(struct udev_device *device, char **value, unsigned
|
||||
return;
|
||||
}
|
||||
|
||||
min_brightness = MAX(1U, max_brightness/20);
|
||||
subsystem = udev_device_get_subsystem(device);
|
||||
if (streq_ptr(subsystem, "backlight"))
|
||||
min_brightness = MAX(1U, max_brightness/20);
|
||||
else
|
||||
min_brightness = 0;
|
||||
|
||||
new_brightness = CLAMP(brightness, min_brightness, max_brightness);
|
||||
if (new_brightness != brightness) {
|
||||
char *old_value = *value;
|
||||
|
Loading…
x
Reference in New Issue
Block a user