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