summaryrefslogtreecommitdiff
path: root/hw/xfree86/common/xf86Mode.c
diff options
context:
space:
mode:
authorLuc Verhaegen <libv@skynet.be>2006-01-31 13:04:02 +0000
committerLuc Verhaegen <libv@skynet.be>2006-01-31 13:04:02 +0000
commit8f3c69dcf17691f71bca7b0a2cd34f7788a97b8c (patch)
treeb3bc00e210183ccc9d239bdb3331da79c82eee08 /hw/xfree86/common/xf86Mode.c
parent701b63cf1dcd3e49602114fb1dde45a74b4e1122 (diff)
Accept modes with less than 25% horizontal blanking again (you can push old
gtf timing to below 25%), only stop cvt reduced blanking. Users should be free to blow up their monitors if they so choose.
Diffstat (limited to 'hw/xfree86/common/xf86Mode.c')
-rw-r--r--hw/xfree86/common/xf86Mode.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/hw/xfree86/common/xf86Mode.c b/hw/xfree86/common/xf86Mode.c
index 618f3f33e..bb8f4b1d1 100644
--- a/hw/xfree86/common/xf86Mode.c
+++ b/hw/xfree86/common/xf86Mode.c
@@ -1,4 +1,4 @@
-/* $XdotOrg: xserver/xorg/hw/xfree86/common/xf86Mode.c,v 1.7 2005/07/03 08:53:42 daniels Exp $ */
+/* $XdotOrg: xserver/xorg/hw/xfree86/common/xf86Mode.c,v 1.8 2005/12/28 15:22:21 libv Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.69 2003/10/08 14:58:28 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@@ -816,16 +816,20 @@ xf86CheckModeForMonitor(DisplayModePtr mode, MonPtr monitor)
if (mode->Flags & V_INTERLACE)
mode->CrtcVTotal = mode->VTotal |= 1;
- /* Check wether this mode has acceptable blanking */
- if (((mode->HDisplay * 5 / 4) & ~0x07) > mode->HTotal) {
-
- /* Is this a CVT Reduced blanking mode? */
- if ((mode->HTotal - mode->HDisplay) != 160)
- return MODE_HBLANK_NARROW;
-
+ /*
+ * Usually, CVT normal blanking is never more than one character below 25%,
+ * but for low frequencies and weird ratios, you can get below that.
+ * When you go into the low frequencies with the gtf generator, of which
+ * normal CVT is a simplification, you almost always go below 25%.
+ *
+ * So if we see awkward blanking, then it's either directly CVT or GTF
+ * generated, or the user supposedly knows what he's doing. So we only stop
+ * reduced blanking here, as that might accidentally hit us. -- libv
+ */
+ if (((mode->HTotal - mode->HDisplay) == 160) &&
+ (((mode->HDisplay * 5 / 4) & ~0x07) > mode->HTotal))
if (!monitor->reducedblanking)
return MODE_NO_REDUCED;
- }
return MODE_OK;
}