Bug 43123 - [regression GM45] Flickering screen on intel mobile 4 series chipset in 3.1+ kernels
[regression GM45] Flickering screen on intel mobile 4 series chipset in 3.1+ ...
Status: RESOLVED FIXED
Product: DRI
Classification: Unclassified
Component: DRM/Intel
unspecified
x86-64 (AMD64) Linux (All)
: high critical
Assigned To: Jesse Barnes
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-11-20 11:12 UTC by Witold Piłat
Modified: 2012-04-11 03:45 UTC (History)
6 users (show)

See Also:


Attachments
3.2.1 kernel log with drm.debug=0xe (111.46 KB, text/plain)
2012-04-04 20:26 UTC, Witold Piłat
no flags Details
3.2.1 kernel (11.19 KB, text/plain)
2012-04-04 20:27 UTC, Witold Piłat
no flags Details
3.2.1 kernel intel_reg_dumper output (11.19 KB, text/plain)
2012-04-04 20:28 UTC, Witold Piłat
no flags Details
video of the flicker (167.81 KB, video/mp4)
2012-04-06 15:24 UTC, Witold Piłat
no flags Details
drm.debug=0xe log of 3.3.1 kernel + b690e96 reverted (no flickering) (210.05 KB, text/plain)
2012-04-09 05:20 UTC, Witold Piłat
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Witold Piłat 2011-11-20 11:12:06 UTC
Kernel commit "2704cf5fbd248871a745d210733c6319959d2b0c drm/i915: flush plane control changes on ILK+ as well"
causes constant flickering of my laptop's screen. Image jumps from proper position to translated by half of the screen. I haven't noticed any warning/error messages even with drm.debug.

I have Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07).
Comment 1 Guang Yang 2011-11-21 18:03:50 UTC
(In reply to comment #0)
> Kernel commit "2704cf5fbd248871a745d210733c6319959d2b0c drm/i915: flush plane
> control changes on ILK+ as well"
> causes constant flickering of my laptop's screen. Image jumps from proper
> position to translated by half of the screen. I haven't noticed any
> warning/error messages even with drm.debug.
> I have Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller
> (rev 07).

I have try the kernel:
Kernel: (drm-intel-next)9a10f401a401ca69c6537641c8fc0d6b57b5aee8 
the commit "2704cf5fbd248871a745d210733c6319959d2b0c " still effect this kernel.
But I can't reproduce this issue.
Comment 2 Guang Yang 2011-11-21 18:19:10 UTC
(In reply to comment #0)
> Kernel commit "2704cf5fbd248871a745d210733c6319959d2b0c drm/i915: flush plane
> control changes on ILK+ as well"
> causes constant flickering of my laptop's screen. Image jumps from proper
> position to translated by half of the screen. I haven't noticed any
> warning/error messages even with drm.debug.
> I have Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller
> (rev 07).

I have try with this environment:
--------------------------
Platform:       GM45
Kernel: (drm-intel-next)9a10f401a401ca69c6537641c8fc0d6b57b5aee8
Comment 3 Witold Piłat 2011-11-21 23:00:51 UTC
I can confirm that it doesn't happen on 
(drm-intel-next)9a10f401a401ca69c6537641c8fc0d6b57b5aee8 kernel.
I guess it contains fixes. I've tested/bisected it only against mainline tree.
It still happens on latest mainline and stable kernels. Right now I'm on 3.1.2 kernel with the mentioned commit reversed and it doesn't flicker.
Comment 4 Guang Yang 2011-11-23 00:57:20 UTC
(In reply to comment #3)
> I can confirm that it doesn't happen on 
> (drm-intel-next)9a10f401a401ca69c6537641c8fc0d6b57b5aee8 kernel.
> I guess it contains fixes. I've tested/bisected it only against mainline tree.
> It still happens on latest mainline and stable kernels. Right now I'm on 3.1.2
> kernel with the mentioned commit reversed and it doesn't flicker.

I have try with the kernel 3.1.2 and 3.1.1,but I can't reproduce the issue .
Comment 5 Gordon Jin 2011-12-04 22:36:10 UTC
Witold, can you bisect in drm-intel-next to figure out the fix?
Comment 6 Witold Piłat 2011-12-13 02:56:53 UTC
Somehow I can't reproduce it anymore. I reproduced it multiple times during bisecting and it was kernel dependant. Maybe it was some hardware state bug?
Comment 7 Witold Piłat 2012-01-05 20:00:39 UTC
Ok, I can reproduce it now. I just failed to reaply the commit last time. It still happens on 3.2 stable kernel.

I can't/don't know how to bisect it in drm-intel-next because I can't find revision that is affected by this bug in drm-intel-next tree.
Comment 8 Nick Andrade 2012-01-07 14:29:16 UTC
I have a Dell Studio Hybrid (GM965/i965) connected to an HDTV via HDMI, and I am experiencing similar issues to what is described in this bug on 3.1 & 3.2 kernels.  With older 3.0 kernels (3.0.3 & 3.0.7 have been tested), everything works great.  However when I try 3.0.15, 3.1.17, & 3.2.0 with the same .config (updated via "make oldconfig" with no new options added), the screen slightly flickers and is offset by several inches.  I'm not certain if this is the exact same issue, but it sounds similar.
Comment 9 bminaker 2012-01-25 11:52:03 UTC
This sounds awfully like the issue described in https://bugzilla.redhat.com/show_bug.cgi?id=753881
which I think is a duplicate of
https://bugzilla.redhat.com/show_bug.cgi?id=738813

I've got an HP 2730p with the same Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07), and I've been experiencing a display flash that makes the machine unuseable with any Fedora kernel that's newer than the F16 release (kernel-3.1.0-7.fc16.x86_64), and even on the latest F15 kernel (kernel-2.6.41-4-1.fc15.x86_64).  The F15 release kernel (kernel-2.6.38.6-26.rc1.fc15.x86_64) is fine.  Curiously, on Arch Linux, I could update as far as 3.0.7 without a problem.  I think that something that first appeared in the 3.1 series kernel, that has also been backported to the 2.6.41 kernel, is causing the issue.
Comment 10 Nick Andrade 2012-03-24 14:47:38 UTC
The bug is still present as of 3.3.0.  The latest kernel I was able to use without the issue was 3.0.19 from the vanilla tree in Gentoo (Linus' kernel without distro patches).
Comment 11 Paulo Zanoni 2012-04-04 06:25:50 UTC
(In reply to comment #9)
> This sounds awfully like the issue described in
> https://bugzilla.redhat.com/show_bug.cgi?id=753881

FYI: I just posted a reply there asking for intel_reg_dumper logs. Still not sure it is the same problem.
Comment 12 Daniel Vetter 2012-04-04 07:13:45 UTC
First things first, please only attach information if you're the original reporter - it's damn hard to untangle bug reports with different issues. If you suffer from similar issues, please open up a new bug report with the usual details and add a link to this one (and your report).

Ok, let's fill this bug with some information:
- full dmesg with drm.debug=0xe added to the kernel commandline
- full output of the intel_reg_dumper tool from intel-gpu-tools (check that it's version 1.2).

thanks, Daniel
Comment 13 Witold Piłat 2012-04-04 20:26:20 UTC
Created attachment 59499 [details]
3.2.1 kernel log with drm.debug=0xe
Comment 14 Witold Piłat 2012-04-04 20:27:09 UTC
Created attachment 59500 [details]
3.2.1 kernel
Comment 15 Witold Piłat 2012-04-04 20:28:55 UTC
Created attachment 59501 [details]
3.2.1 kernel intel_reg_dumper output
Comment 16 Jesse Barnes 2012-04-05 15:45:44 UTC
A bisect would really help here if it's a regression.

Witold, can you take a video of the flicker you see too?  Even just a cell phone video would probably be good enough...
Comment 17 Jesse Barnes 2012-04-05 15:46:06 UTC
(For those following along, I want to see if the flicker looks like pipe underruns or not)
Comment 18 Witold Piłat 2012-04-05 18:27:49 UTC
Bisect is the first thing I did even before this bug report. See first comment. This is how I compile all my kernels to this day and everything works fine.
I'll make a video in a while. Should I attach it here or host it somewhere else?
Comment 19 Jesse Barnes 2012-04-06 08:29:16 UTC
Attaching it here is fine if it's not too huge.

I asked for the bisect because it seems the behavior changed over time and maybe we were seeing different bugs get fixed and get introduced... (comments 7 & 8).  But you're saying even with current kernels from git you see the problem but if you revert the plane flush patch it goes away?
Comment 20 Witold Piłat 2012-04-06 15:24:46 UTC
Created attachment 59608 [details]
video of the flicker

I'm afraid my cellphone can't do much better. I can borrow something with higher resolution if it's necessary.
You should though be able to see how during these short flashes whole screen gets translated.

I didn't test it with the latest mainline kernel but I had a chance to test it in Daniel Vetter's drm-intel tree and this bug doesn't affect it.
I'm going to check if rev. 2704cf5 of drm-intel is affected by this.
Comment 21 Witold Piłat 2012-04-09 05:20:49 UTC
Created attachment 59673 [details]
drm.debug=0xe log of 3.3.1 kernel + b690e96 reverted (no flickering)

I found something strange. I have another open bug report on drm/i915 (https://bugs.freedesktop.org/show_bug.cgi?id=40013). I bisected it to commit b690e96cf9e6a6cde6f0393de47bdd6317ddb5de drm/i915: add pipe A force quirks to i915 driver.
Specifically this line of code adding quirk for my laptop:

/* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */
{ 0x2a42, 0x103c, 0x30eb, quirk_pipea_force },

It appears that reverting this line also fixes flickering. It would explain why it doesn't happen on every gm45 machine but is it even possible? I don't know how the code actually works. I really made sure that I patched it correctly.

Now I have two commits. Reverting only one of them fixes the flickering. (I tested it thoroughly, even tried another filesystem).

Moreover flickering is introduced in ~danvet/drm-intel by commit 2704cf5fbd248871a745d210733c6319959d2b0c drm/i915: flush plane control changes on ILK+ as well
and gets fixed (I bisected it) in commit dc22ee6fc18ce0f15424e753e8473c306ece95c1 drm/i915/dp: Remove eDP special cases from bandwidth checks
The last patch doesn't aply to kernel-3.3.1 source.
Comment 22 Daniel Vetter 2012-04-11 03:45:25 UTC
The offending HP 2730p quirk has been removed in 3.4-rc1

commit d12d04512c4430e29daede7f24b97f83f8cf259a
Author: Philipp Grete <mail@pgrete.de>
Date:   Tue Feb 21 12:40:20 2012 +0100

    drm/i915: Fixes distorted external screen image on HP 2730p