Bug 43031

Summary: The new (2.6.39+) samsung_laptop module causes serious backlight flickering - makes the desktop unusable
Product: Drivers Reporter: papukaija
Component: Video(Other)Assignee: drivers_video-other
Severity: normal CC: akpm, daniel, joseph.salisbury, mail, th.perl
Priority: P1    
Hardware: All   
OS: Linux   
URL: https://bugs.launchpad.net/bugs/919773
Kernel Version: Subsystem:
Regression: Yes Bisected commit-id:
Attachments: Output of lspci -vvnn

Description papukaija 2012-04-02 21:04:48 UTC
Created attachment 72792 [details]
Output of lspci -vvnn

I'm using Samsung NC10. The backlight of the laptop often starts flickering (switching very fast between darkest and brightest) when Gnome tries to reduce the screen brightness (automatically after some time) to save power.

This bug is caused by the new samsung_laptop kernel module which was introduced in kernel 2.6.39. If the module is enabled, the flickering starts quite soon after desktop load and can be stopped by changing the backlight brightness. However, the only available modes are 0%, 10% (estimate) and 100%. The two lowest values are too dark for my eyes and the full backlight uses too much battery power.

The work around is to disable the samsung_laptop module. An other solution is to use Fortunato's patched driver [1] which is based on iksaif's work [2].

[1] https://launchpad.net/~voria/+archive/ppa/+packages?field.name_filter=&field.status_filter=published&field.series_filter=precise
[2] https://github.com/iksaif/samsung-laptop-dkms

uname -a
3.2.0-18-generic #28-Ubuntu SMP Fri Mar 2 20:05:41 UTC 2012 i686 i686 i386 GNU/Linux

Please let me know if you need any further information.
Comment 1 Daniel Vetter 2012-04-02 22:06:53 UTC
Note that drm/i915 hackers don't maintain the backlight drivers, hence I'll reassign the bug. MAINTAINERS claims that the backlight subsystem is maintained, but that does not look like it's the case.

I suggest  you mail lkml, cc Andrew Morton <akpm@linux-foundation.org> asking how you could integrate these patches (if possible) to make your system work. Judging by git logs, akpm seems to be the de-facto maintainer for all things backlight.
Comment 2 Thomas Perl 2012-07-29 12:02:31 UTC
Also happens on a Samsung Series 9, using a Kernel from Ubuntu:

3.2.0-27-generic-pae #43-Ubuntu SMP Fri Jul 6 15:06:05 UTC 2012 i686 i686 i386 GNU/Linux

Unloading the samsung-laptop (modprobe -r samsung-laptop) kernel module fixes the issue (but makes the backlight non-controllable via the brightness keys in a normal Ubuntu 12.04 install). Loading the module again (modprobe samsung-laptop) causes the screen to flicker again.

Is there anything I can do to help getting these patches integrated? Has this been discussed on the mailing list already? I was not able to find the right thread, but maybe I was looking in the wrong place.
Comment 3 Jason Robinson 2012-08-03 06:05:42 UTC
Also affected Samsung Series 5, using Ubuntu 12.04 kernel:

uname -a
Linux jaytec 3.2.0-27-generic #43-Ubuntu SMP Fri Jul 6 14:25:57 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

One workaround also is to just disable turning screen dimming and automatic turn off - but effectively makes the laptop a desktop due to power usage :)

Btw, this only appeared recently. When I bought the laptop everything worked fine (no flickering when changing brightness).

Also, when my screen started flickering, my issue with ACPI reporting wrong state of battery charging got fixed - but it was only temporary, the issue is back. Bug report about that here, maybe these are related somehow: https://bugzilla.kernel.org/show_bug.cgi?id=44161
Comment 4 papukaija 2012-09-03 21:43:56 UTC
I did some testing on newer kernels and can confirm that this bug is fixed in 3.4.0-030400-generic-pae #201205210521 SMP Mon May 21 09:35:19 UTC 2012 i686 i686 i386 GNU/Linux.

~$ dmesg | grep samsung
[   19.490347] samsung_laptop: detected SABI interface: SwSmi@
[   19.490358] samsung_laptop: Backlight controlled by ACPI video driver

--> No flickering!

Please note that the flickering on other Samsung laptops is caused by commit 9a2e71ce177a1602a0502fbcbb3f11e4bae584e4. More details are available at https://bugs.launchpad.net/linux/+bug/1028151/comments/72