[Powerdevil] [Bug 381199] New: Broken brightness control with kernel module (ex. nvidia-bl)

bugzilla_noreply at kde.org bugzilla_noreply at kde.org
Wed Jun 14 12:12:11 UTC 2017


https://bugs.kde.org/show_bug.cgi?id=381199

            Bug ID: 381199
           Summary: Broken brightness control with kernel module (ex.
                    nvidia-bl)
           Product: Powerdevil
           Version: 5.10.0
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: plasma-devel at kde.org
          Reporter: vsnrain.dev at gmail.com
  Target Milestone: ---

Overview:
Since 5.10, it is no longer possible to adjust brightness on my system, which
requires special kernel module for brightness to work. I tried to look at what
caused this, and found that in following commit 
https://cgit.kde.org/powerdevil.git/commit/?id=86c3548d103ff5966366788220796de629be9230
Was attempt to add feature that powerdevil will control only brightness of
active device. Part of relevant code is following:

/daemon/backends/upower/backlighthelper.cpp
bool BacklightHelper::isRawBacklightEnabled(const QString &interface)
{
    QFile file(BACKLIGHT_SYSFS_PATH + interface + "/device/enabled");

    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        return false;
    }

    QByteArray buffer = file.readLine().trimmed();
    if (buffer == "enabled") {
        return true;
   }

    return false;
}

As you can see, it was implemented by skipping all brightness devices which in
BACKLIGHT_SYSFS_PATH + interface + "/device/enabled" does not return "enabled".
The problem is, there is no property "device/enabled" in my nvidia_backlight
device:

ls -la /sys/class/backlight/nvidia_backlight/                  
total 0
drwxr-xr-x 3 root root    0 Jun  2 22:50 .
drwxr-xr-x 3 root root    0 Jun  2 22:50 ..
-r--r--r-- 1 root root 4096 Jun  2 23:02 actual_brightness
-rw-r--r-- 1 root root 4096 Jun  2 23:02 bl_power
-rw-r--r-- 1 root root 4096 Jun  2 22:54 brightness
-r--r--r-- 1 root root 4096 Jun  2 22:50 max_brightness
drwxr-xr-x 2 root root    0 Jun  2 23:02 power
lrwxrwxrwx 1 root root    0 Jun  2 22:50 subsystem ->
../../../../class/backlight
-r--r--r-- 1 root root 4096 Jun  2 22:50 type
-rw-r--r-- 1 root root 4096 Jun  2 22:50 uevent

so powerdevil tries to open this file, fails, and always skips this brightness
device. I recompiled powerdevil with "return true" in mentioned function, and
brightness control works again, so it seems that problem in indeed in this
part.

Steps to Reproduce:
use kernel module for brightness device, tested on Nvidia GF 9400M with
nvidia-bl kernel module.

Actual Results:
powerdevil always skips brightness device, because it cannot open file
/sys/class/backlight/nvidia_backlight/device/enabled, which does not exist.

Expected Results:
register and control brightness device.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Plasma-devel mailing list