Bug 27272 - After resume of S4 overlay stays active on Pineview
Summary: After resume of S4 overlay stays active on Pineview
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - Intel) (show other bugs)
Hardware: All Linux
: P1 high
Assignee: drivers_video-dri-intel@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-21 14:30 UTC by Matthias Hopf
Modified: 2011-02-19 23:57 UTC (History)
6 users (show)

See Also:
Kernel Version: 2.6.38-rc1
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
Patch fixing this regression (1.13 KB, patch)
2011-01-21 14:30 UTC, Matthias Hopf
Details | Diff
Revised patch for 2.6.37 (3.92 KB, patch)
2011-01-24 09:41 UTC, Takashi Iwai
Details | Diff

Description Matthias Hopf 2011-01-21 14:30:52 UTC
Created attachment 44602 [details]
Patch fixing this regression

Git commit 032d2a0 "drm/i915: Prevent double dpms on" results in a weird regression on intel Pineview (8086:a011) - after resume from S4 the previous framebuffer contents (in resolution 800x600) are displayed in a sort-of overlay in the upper left part of the screen, only vanishing after an S3 cycle.

Interestingly, the regular XV overlay seems to be a different overlay, because using the XV overlay (the second XVideo adapter) doesn't change the display.


Patch from Takashi attached.
Comment 1 Takashi Iwai 2011-01-21 15:36:33 UTC
Note that the patch above doesn't apply / work alone with 2.6.37.
But similar fixes (checking crtc->active as well) in intel_display.c makes working on 2.6.37, too.

The problem is obviously that DPMS isn't set up properly at S3 resume.  A saner fix would be to clear up intel_crtc->dpms and active flags somehow so that the next dpms call takes real action.
Comment 2 Takashi Iwai 2011-01-21 15:39:43 UTC
(In reply to comment #1)
> The problem is obviously that DPMS isn't set up properly at S3 resume.

Grr, of course, I meant S4 resume.
Comment 3 Chris Wilson 2011-01-21 15:47:41 UTC
(In reply to comment #1)
> The problem is obviously that DPMS isn't set up properly at S3 resume.  A
> saner
> fix would be to clear up intel_crtc->dpms and active flags somehow so that
> the
> next dpms call takes real action.

Right, that sounds like the underlying problem. Thanks!
Comment 4 Takashi Iwai 2011-01-24 09:37:09 UTC
Below is a revised patch for 2.6.37.  Now it has resume_count field to check whether the forced update is required after resume.
Note that this change is used in another patch for yet-another-S3-regression (bug 26952).
Comment 5 Takashi Iwai 2011-01-24 09:41:41 UTC
Created attachment 44982 [details]
Revised patch for 2.6.37
Comment 6 Chris Wilson 2011-02-01 09:22:15 UTC
In drm-intel-fixes [pull requests en route]:

http://git.kernel.org/?p=linux/kernel/git/ickle/drm-intel.git;a=commit;h=5d1d0cc87fc0887921993ea0742932e0c8adeda0
Comment 7 Florian Mickler 2011-02-19 23:57:45 UTC
merged in .38-rc5

Note You need to log in before you can comment on or make changes to this bug.