commit | b586640141ab5f4ab3b194419bc2c0f039e91dbc | [log] [tgz] |
---|---|---|
author | Paul Menzel <paulepanter@users.sourceforge.net> | Tue Jun 16 15:34:37 2009 -0700 |
committer | Linus Torvalds <torvalds@linux-foundation.org> | Tue Jun 16 19:48:00 2009 -0700 |
tree | 2d9bc7d43ac48d879d7cad086aa1cf69ddb02b03 | |
parent | 491bcc9bf5d9a57f2d9cb3ce8ba0f6d48752c113 [diff] |
intelfb: fix a bug when changing video timing When changing video timing dynamically via fbset the screen sporadically is rendered black. With the attached fix which disables VCO prior to timing register change the problem disappears. I had a look at the Xserver register setup code. Here the VCO is disabled in the same way [1]. This patch is taken from vga-sync-field version 0.0.11 [2][3]. [1] http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/i830_= driver.c [2] http://lowbyte.de/vga-sync-fields/vga-sync-fields-0.0.11.tgz [3] http://easy-vdr.de/git?p=frc.git/.git;a=commit;h=dcc3b863e5a663652587619c357bd20075af6896 2587619c357bd20075af6896 Signed-off-by: Thomas Hilber <sparkie@lowbyte.de> Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c index ace14fe..0cafd64 100644 --- a/drivers/video/intelfb/intelfbdrv.c +++ b/drivers/video/intelfb/intelfbdrv.c
@@ -1365,6 +1365,11 @@ DBG_MSG("intelfb_set_par (%dx%d-%d)\n", info->var.xres, info->var.yres, info->var.bits_per_pixel); + /* + * Disable VCO prior to timing register change. + */ + OUTREG(DPLL_A, INREG(DPLL_A) & ~DPLL_VCO_ENABLE); + intelfb_blank(FB_BLANK_POWERDOWN, info); if (ACCEL(dinfo, info))