Message ID | 87mw8432y9.fsf@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, Am 06.11.2014 um 13:53 schrieb Jani Nikula: >> root@kallisto:~# cat /sys/class/backlight/intel_backlight/bl_power >> 1 >> >>> you echo 0 there? >> >> :-) Works my display comes back, when I echo 0 there. >> >> Is user-space doing something wrong here? > > If the userspace wishes to switch off backlight, then it's doing nothing > wrong at all! ;) > > Here's the story as I know it. > > Once upon a time someone added the bl_power attribute to the sysfs class > backlight interface. Even though the name implies a boolean backlight > power, the values are in fact FB_BLANK_* from fb.h, and power on is > FB_BLANK_UNBLANK, or 0. All the other values are various levels of > blanking which make little sense to backlight, and thus any non-zero > values mean power off. [1] > > Until recently, intel_backlight of drm/i915 did not support bl_power at > all. We ignored the attribute altogether. However changing bl_power from > its default 0 did cause a backlight update hook to be called. In some > edge cases doing this fixed some backlight issues by reprogramming the > backlight intensity, and probably lead to the false assumption that > bl_power needed to be set to 1 to enable power. > > Now that we've enabled support for bl_power attribute (on eDP at least), > the previously harmless, or sometimes even helpful, bl_power=1 actually > does what it means. That is, switch off the backlight. > Thanks for your elaborated answer. > Please try this patch (untested) to find out the culprit. Thanks, its the intel xorg driver: [ 255.777798] bl_power 1 by Xorg I seems it was already corrected upstream, by Chris Wilson two days ago: http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/commit/?id=7ecc778691c452285f754743a93a46fa1d3da52f Best regards Arnd
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index bddc8b17a4d8..8cf5c6cdeef5 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -143,6 +143,7 @@ static ssize_t bl_power_store(struct device *dev, struct device_attribute *attr, rc = -ENXIO; mutex_lock(&bd->ops_lock); if (bd->ops) { + printk(KERN_INFO "bl_power %lu by %s\n", power, current->comm); pr_debug("set power to %lu\n", power); if (bd->props.power != power) { bd->props.power = power;