This is Ironlake i3-530 with latest Linux tree (32163f4b2cef28a5aab8b226ffecfc6379a53786). It was just the same on earlier .36 though. When I switch from X to the console there is no flicker, as with other kernels. But when I switch back, the X image shows for a moment, then instantly disappears and reappears after about 1 second. Then after several (10 or less) seconds the screen blackens and restores one more time.
I can bisect this if needed.
From which kernel version did we regress? Was 2.6.25 OK?
.35 is OK. Even bc584c5107bfd97e2aa41c798e3b213bcdd4eae7 is OK. The main part of the problem appears after merging of anholt/drm-intel (4fefe435626758b14e6c05d2a5f8d71a997c0ad6) at 4238a417a91643e1162a98770288f630e37f0484: the screen flickers when switching to the X, but the second flicker doesn't happen. I think the second flicker starts to appear between rc4 and rc5, but I may remember wrong.
I couldn't bisect that anholt/drm-intel branch because apparently all its commits from 3e33d94df7f5c94adb09139b5d816a248d703a36 to 4fefe435626758b14e6c05d2a5f8d71a997c0ad6 hang on boot here.
From the description the flicker is related to hotplug polling, and I think is the one meant to be addressed by this patch:
Author: Keith Packard <email@example.com>
Date: Tue Nov 16 16:03:53 2010 +0800
drm/i915: Take advantage of auto-polling CRT hotplug detection on PCH hardware
Both IBX and CPT have an automatic hotplug detection mode which appears to work reliably enough that we can dispense with the manual force hotplug trigger stuff. This means that hotplug detection is as simple as reading the current hotplug register values.
The first time the hotplug detection is activated, the code synchronously waits for a hotplug sequence in case the hardware hasn't bothered to do a detection cycle since being initialized.
Signed-off-by: Keith Packard <firstname.lastname@example.org>
Signed-off-by: Chris Wilson <email@example.com>
I've finally tested this again on newer setup. The bug is reproducible on 2.6.36 but not on 2.6.37-rc6. Feel free to reopen.