Bug 838142

Summary: Brightness / Backlight controls on Dell XPS L702X does not work
Product: [Fedora] Fedora Reporter: Juan Antonio Valiño García <juanvalino>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 18CC: gansalmon, itamar, jforbes, jonathan, kernel-maint, madhu.chinakonda, vgrinco
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-25 14:22:25 EST Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Juan Antonio Valiño García 2012-07-06 14:51:12 EDT
Description of problem:

The brightness controls Fn+F4 (Down) and Fn+F5 (Up) on my Dell XPS L702X does not work. 

Version-Release number of selected component (if applicable):

I am using Fedora 17 with the following config:

# uname -a
Linux hal.local 3.4.4-3.fc17.x86_64 #1 SMP Tue Jun 26 20:54:56 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

# lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation Device 124d (rev a1)

(nVIDIA GeForce GT 555M)

How reproducible:

On grub2 graphic boot screen (GRUB_THEME="/boot/grub2/themes/system/theme.txt") the controls work well, but after grub the brightness controls does not work both on GNOME and KDE.  

Steps to Reproduce:
1. Boot the computer
2. Try controls in grub2 graphic menu (it should work)
3. Once booted, try the controls again inside GNOME or KDE
4. If you try to change brightness using system options of GNOME or KDE the brightness does not change.
Actual results:

In grub2 graphic menu the controls work perfectly.
In GNOME or KDE the controls does not work. The brightness / backlight doesn't change and no widget is show on screen.

Expected results:

Brightness / backlight must change in response to Fn+F4 and Fn+F5

Additional info:

I have tested it on GNOME and KDE without results. 

Also I have tested with nVIDIA propietary driver and with nouveau driver with the same results.

I tried the acpi_backlight=vendor with no effect. 

Also I tried the following option in xorg.conf with the nVIDIA propietary driver without results:

    Option         "RegistryDwords" "EnableBrightnessControl=1"

It seems that there are two problems:

1. The kernel does not detect Fn+F4 and Fn+F5 combination because using xev no event is captured pressing these keys.

2. There is some problem in another component because using the slider bar avaliable in system options of GNOME and KDE to change brightness does not work.
Comment 1 Juan Antonio Valiño García 2012-07-11 13:55:52 EDT
After last kernel and NVIDIA drivers update now I can see the widget in KDE when I press Fn+F4 and Fn+F5, but the brightness does not change.

$ uname -a
Linux hal.local 3.4.4-5.fc17.x86_64 #1 SMP Thu Jul 5 20:20:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ rpm -qa | grep nvidia
Comment 2 Josh Boyer 2012-07-11 14:17:19 EDT
We can't do anything with  machines using the proprietary nvidia drivers.
Comment 3 Juan Antonio Valiño García 2012-07-11 14:55:16 EDT
(In reply to comment #2)
> We can't do anything with  machines using the proprietary nvidia drivers.

That's acceptable, but I have the problem both with proprietary drivers and with the free driver (nouveau driver). It seems that with proprietary drivers there is some kind of advance with the last update, but if you want we can center the efforts into the free driver scenery.

So, what's the next step? . How can I help to solve this?
Comment 4 Vadim Grinco 2012-10-15 07:35:18 EDT
Hey guys, adding the following option to device section of xorg.conf solves the issue:

Option "RegistryDwords" "EnableBrightnessControl=1"

Mine looks like this:

Section "Device"
	Identifier  "Videocard0"
	Driver      "nvidia"
        Option "RegistryDwords" "EnableBrightnessControl=1"
Comment 5 Juan Antonio Valiño García 2012-10-18 04:08:55 EDT
This doesn't work for me.
The brightness control is shown and goes up an down, but the brightness on the screen doesn't change. 
I think the problem may be related to ACPI for this model of laptop.
Comment 6 Justin M. Forbes 2013-02-01 10:40:18 EST
Is this still an issue with 3.7 kernels currently in updates?
Comment 7 Juan Antonio Valiño García 2013-02-03 11:19:18 EST
Yes. I still have the problem with Fedora 18 and this config:

# uname -a
Linux hal.local 3.7.4-204.fc18.x86_64 #1 SMP Wed Jan 23 16:44:29 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/default/grub 
#GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True rd.luks=0  KEYTABLE=es LANG=en_US.UTF-8 rhgb quiet acpi_osi=Linux acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True rd.luks=0  KEYTABLE=es LANG=en_US.UTF-8 rhgb quiet acpi_backlight=vendor"                                              
#GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True rd.luks=0  KEYTABLE=es LANG=en_US.UTF-8 rhgb quiet"                                                                   

# lsmod | grep nouveau
nouveau               937628  3 
mxm_wmi                12866  1 nouveau
i2c_algo_bit           13258  1 nouveau
drm_kms_helper         44759  1 nouveau
ttm                    79761  1 nouveau
drm                   264190  5 ttm,drm_kms_helper,nouveau
i2c_core               38354  6 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau,videodev
wmi                    18698  3 dell_wmi,mxm_wmi,nouveau
video                  18992  1 nouveau

Now I cannot see the backlight controls both with nouveau and proprietary driver (with EnableBrightnessControl=1).

I think the problem has to be with ACPI because if I change the contents of /sys/class/backlight/dell_backlight/brightness nothing happens.

Also when I press Fn+F4 o Fn+F5 nothing happens.

Can I help with some debugging?
Comment 8 Juan Antonio Valiño García 2013-02-03 11:24:47 EST
One more note:

On grub menu the brightness controls work well.

I can help with debugging or more info if someone tells me how to do it.
Comment 9 Vadim Grinco 2013-02-04 05:39:28 EST
I have solved the issue by adding the following to the device section in my xorg.conf:
    Option         "RegistryDwords" "EnableBrightnessControl=1"

So it looks like this:
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 555M"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
Comment 10 Juan Antonio Valiño García 2013-02-06 11:46:28 EST
What kernel are you using?

This option is only for NVIDIA propietary driver.

Also, I tried it and it doesn't work for me.
Comment 11 Vadim Grinco 2013-02-06 14:08:23 EST
Yes, I switched to using the proprietary driver, however same issue was present before I changed the EnableBrightnessControl in xorg.conf

My kenrnel is: $ uname -r

This was working on a few previous kernel versions including the ones from fc17.
Comment 12 Juan Antonio Valiño García 2013-02-25 14:22:25 EST
After fighting several days with this problem I have found the solution for my laptop (DELL XPS L702X with GeForce FT 555M).

With nouveau was impossible for me to get this work. I tried several combinations of GRUB2 boot parameters for acpi_backlight and acpi_osi and none of them worked.

The solution is to use the NVIDIA proprietary driver, but not the 304.64 driver version in rpmfusion repository. Seems this version (304.64) is buggy with laptops backlight. I get a working config with this driver (304.64) using gnome and  "acpi_backlight=legacy acpi_osi=Linux" in /etc/default/grub, but this solution does not work in KDE.

Finally, to get this work on KDE I downloaded and installed 310.32 version of nvidia driver from the official website. To install this version of the driver on 3.7 kernels (like fc18) you need a small workaround before running the installer:

cd /lib/modules/`uname -r`/build/include/linux
ln -s ../generated/uapi/linux/version.h .

After that, run the installer NVIDIA-Linux-x86_64-310.32.run and follow the on-screen instructions.

After installing the 310.32 my final working config is this (you can edit this files before running nvidia proprietary driver if you want) :


GRUB_CMDLINE_LINUX="rd.md=0 rd.lvm=0 rd.dm=0 vconsole.font=True rd.luks=0 vconsole.keymap=es LANG=en_US.UTF-8 rhgb quiet acpi_backlight=vendor acpi_osi=vendor"

(remember to run "grub2-mkconfig > /boot/grub2/grub.cfg" after editing this file to make changes visible on next reboot)


Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "DPI" "96 x 96"
    Option         "RegistryDwords" "EnableBrightnessControl=1"

I hope this may help other people facing this problem. 

Thanks to everybody for the help !!!