Thread (2 messages) flat view 2 messages, 1 author, 2009-06-03
STALE6323d

[PATCH] Fix a bug in intelfb initialization.

From: Paul Menzel <hidden>
Date: 2009-05-02 17:32:34
Subsystem: framebuffer layer, the rest · Maintainers: Helge Deller, Linus Torvalds

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://git.hellersdorfer-jugendchor.de/?p=vga2scart.git;a=commitdiff;h=dcc3b863e5a663652587619c357bd20075af6896

Signed-off-by: Thomas Hilber <redacted>
Signed-off-by: Paul Menzel <redacted>
CC: Dave Airlie <airlied@gmail.com>
---
 drivers/video/intelfb/intelfbdrv.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/video/intelfb/intelfbdrv.c b/drivers/video/intelfb/intelfbdrv.c
index 6d8e541..7ba8db5 100644
--- a/drivers/video/intelfb/intelfbdrv.c
+++ b/drivers/video/intelfb/intelfbdrv.c
@@ -1364,6 +1364,11 @@ static int intelfb_set_par(struct fb_info *info)
 	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))
-- 
1.6.2.4

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help