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

[RESEND] [PATCH] Fix a bug in intelfb initialization.

From: Paul Menzel <hidden>
Date: 2009-06-03 14:36:12
Subsystem: framebuffer layer, the rest · Maintainers: Helge Deller, Linus Torvalds

Dear hackers,


I sent this message already some time ago but probably not to the
correct people. (Now I took the one from MAINTAINERS and the ones from
this message [1].)


Bests,

Paul


[1] http://marc.info/?l=linux-fbdev-devel&m=124388452327831&w=2

--
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

Signed-off-by: Thomas Hilber <redacted>
Signed-off-by: Paul Menzel <redacted>
---
 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