# laptop screen backlight flickers during power save

## lotuskip

Whenever my laptop's (a new Lenovo G50-30) screen goes to power save, or when I emulate this with "xset dpms force off", what I think is the LCD backlight blinks/flickers on&off about every 3 seconds, causing the black screen to look slightly "brighter" momentarily. This is very annoying and probably not good for the screen. Searching the web has been fruitless; no one seems to have a similar issue. So far I have determined that

1) it is not xserver related, since the same happens in the framebuffer when X is not even running,

2) it is specific to my setup/kernel, since when running systemrescuecd on the same hardware the problem doesn't show,

3) the problem persists regardless of whether acpid is running.

I have seen various subdirectories in '/sys/class/backlight/' depending on kernel options. With 'acpi_backlight=vendor', I have there

```
ideapad   intel_backlight
```

with 'video.use_native_backlight=1' there is only

```
intel_backlight
```

and with both or neither there is

```
acpi_video0   intel_backlight
```

Obviously, with all of the above alternatives the problem persists (otherwise I wouldn't be writing this). I am able to modify the visible brightness of the screen by changing the value in '/sys/class/backlight/intel_backlight/brightness'. I also monitored both the 'actual_brightness' and the 'brightness' files during the "flickering", but there was no change in them (other than when entering and exiting power save, so the brightness reported by the file stayed at 0 through the "flickering"). However, when booting systemrescuecd, there is nothing in '/sys/class/backlight/'!

lsmod in systemrescuecd did not show any video/ACPI/backlight-related modules that would be missing in my gentoo setup. Although, I have everything compiled into the kernel, not as a module (*, not M), but that shouldn't make a difference, should it?

```

# lspci -k

00:02.0 VGA compatible controller: Intel Corporation ValleyView Gen7 (rev 0e)

    Subsystem: Lenovo Device 3905

    Kernel driver in use: i915

```

```

$ dmesg | grep "ACPI: Video"

[    2.009664] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)

```

The "blinking" does not produce any messages in /var/log/Xorg.0.log or dmesg. I don't know where else to look.

The bottom line is, somehow systemrescuecd makes this problem go away. Now how do I figure out how it does that?

----------

## lotuskip

Done some more fiddling, I've discovered that there is a function key that turns the backlight on and off. Yes, I am very new with this laptop. Now, if I turn the backlight off and run 'xset dpms force off' blind, the black screen still "blinks" until I hit a key or move the mouse. This would suggest to me either that whatever is causing the "blinking" overrides even the built-in switch (unlikely), or that I was wrong to begin with and the observed "flickering" is not the backlight switching on at all... I have no idea what else it could be.

Anyhow, I tried to poke around some more in systemrescuecd to find what's different there. The kernel version is (3.10.45 in sysresc, 3.14.14 in gentoo), and this causes some changes in modules and their parameters, too. I also noticed that 'dmesg' in systemrescuecd prints nothing about ACPI and video, as if the ACPI video module wasn't even loaded (which would perhaps explain the empty /sys/class/backlight/ directory). But I don't see a way to not include ACPI video in my kernel; it seems to be selected by the i915 module which I think is pretty indispensable.

I also tried booting with 'acpi=off'. The "blinking" still happened.

Will look into some more things tomorrow. Please let me know if you have any thoughts on this.

----------

## lotuskip

Sorry if it seems like I'm having a blog here. Feel free to contribute!

Still no luck, but I've found out something that I actually believe might be the culprit. I changed all video driver related stuff from built-in to module to make it easier (?) to see interdependencies and parameters through 'lsmod' and 'modinfo'. This revealed a module named 'backlight'. Such a module is not present under systemrescuecd. I cannot remove this module since modules i915, video, and ideapad_laptop depend on it. Not including it in the kernel is impossible for the same reason. I tried blacklisting it but it still showed up. That is, in a foo.conf file under /etc/modprobe.d/ I had 'blacklist backlight'; is that the right and up-to-date method of blacklisting in gentoo? Or does a blacklisted module get loaded anyway if another module so demands?

As for the musings in the previous post, the acpi video module is loaded in systemrescuecd, but it just doesn't show in the output of 'dmesg' in any way.

The function keys for changing the screen brightness work neither in gentoo nor systemrescuecd, in case that gives any clues. I can live with them not working, though. I just wish I didn't have a dim strobo light in my room whenever I'm not using the laptop for a while.

----------

## desultory

 *lotuskip wrote:*   

> Sorry if it seems like I'm having a blog here. Feel free to contribute!

 Given how you are handling it, I would not call it a problem.That is aside from the lack of help, but you seem to be doing fairly well without it.

 *lotuskip wrote:*   

> I tried blacklisting it but it still showed up. That is, in a foo.conf file under /etc/modprobe.d/ I had 'blacklist backlight'; is that the right and up-to-date method of blacklisting in gentoo? Or does a blacklisted module get loaded anyway if another module so demands?

 Yes, to both. Blacklisting should only affect direct automatic loading, anything that depends on blacklisted modules should still be able to pull them in.

----------

