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.
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.
(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.
(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!
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).
Created attachment 44982 [details] Revised patch for 2.6.37
In drm-intel-fixes [pull requests en route]: http://git.kernel.org/?p=linux/kernel/git/ickle/drm-intel.git;a=commit;h=5d1d0cc87fc0887921993ea0742932e0c8adeda0
merged in .38-rc5