forked from pool/systemd
41 lines
1.5 KiB
Diff
41 lines
1.5 KiB
Diff
|
From c7fdf44d08e1217d40dc092fb90a65978a0f541f Mon Sep 17 00:00:00 2001
|
||
|
From: Lennart Poettering <lennart@poettering.net>
|
||
|
Date: Wed, 23 Apr 2014 06:55:54 +0200
|
||
|
Subject: [PATCH] backlight: warn if kernel exposes backlight device with
|
||
|
bogus max_brightness
|
||
|
|
||
|
We shouldn't silently tape over broken kernel drivers.
|
||
|
---
|
||
|
src/backlight/backlight.c | 10 +++++++---
|
||
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git src/backlight/backlight.c src/backlight/backlight.c
|
||
|
index 754a646..c708391 100644
|
||
|
--- src/backlight/backlight.c
|
||
|
+++ src/backlight/backlight.c
|
||
|
@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device *device) {
|
||
|
|
||
|
max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness");
|
||
|
if (!max_brightness_str) {
|
||
|
- log_warning("Failed to read 'max_brightness' attribute");
|
||
|
+ log_warning("Failed to read 'max_brightness' attribute.");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
r = safe_atou(max_brightness_str, &max_brightness);
|
||
|
if (r < 0) {
|
||
|
- log_warning("Failed to parse 'max_brightness' \"%s\": %s",
|
||
|
- max_brightness_str, strerror(-r));
|
||
|
+ log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r));
|
||
|
+ return 0;
|
||
|
+ }
|
||
|
+
|
||
|
+ if (max_brightness <= 0) {
|
||
|
+ log_warning("Maximum brightness is 0, ignoring device.");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
1.7.9.2
|
||
|
|