Module Name:    src
Committed By:   jdc
Date:           Sun Oct 23 06:06:24 UTC 2011

Modified Files:
        src/sys/arch/sparc64/dev: ffb.c ffbreg.h

Log Message:
Correct the VSYNC-related register definitions and rework how they are used
(only when the monitor supports composite sync).  OK macallan@.


To generate a diff of this commit:
cvs rdiff -u -r1.46 -r1.47 src/sys/arch/sparc64/dev/ffb.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/sparc64/dev/ffbreg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc64/dev/ffb.c
diff -u src/sys/arch/sparc64/dev/ffb.c:1.46 src/sys/arch/sparc64/dev/ffb.c:1.47
--- src/sys/arch/sparc64/dev/ffb.c:1.46	Thu Aug 18 12:53:25 2011
+++ src/sys/arch/sparc64/dev/ffb.c	Sun Oct 23 06:06:24 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: ffb.c,v 1.46 2011/08/18 12:53:25 macallan Exp $	*/
+/*	$NetBSD: ffb.c,v 1.47 2011/10/23 06:06:24 jdc Exp $	*/
 /*	$OpenBSD: creator.c,v 1.20 2002/07/30 19:48:15 jason Exp $	*/
 
 /*
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffb.c,v 1.46 2011/08/18 12:53:25 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffb.c,v 1.47 2011/10/23 06:06:24 jdc Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -1355,32 +1355,21 @@ ffb_set_vmode(struct ffb_softc *sc, stru
 	}
 
 	/* DAC Control and Timing Generator Control */
-	if (mode->flags & VID_PVSYNC) {
-		dcl = FFB_DAC_DAC_CTRL_POS_SYNC;
-		if (mode->flags & VID_NHSYNC) {
-#if 0
-/* XXX */
-			dcl |= FFB_DAC_DAC_CTRL_VSYNC_REV;
-#endif
-			tgc = 0;
-		} else {
-			tgc = FFB_DAC_TGC_EQUAL_DISABLE;
-		}
-	} else {
+	if (mode->flags & VID_PVSYNC)
+		dcl = FFB_DAC_DAC_CTRL_POS_VSYNC;
+	else
 		dcl = 0;
-		if (mode->flags & VID_PVSYNC) {
-			dcl |= FFB_DAC_DAC_CTRL_VSYNC_REV;
-			tgc = 0;
-		} else {
-			tgc = FFB_DAC_TGC_EQUAL_DISABLE;
-		}
-	}
+	tgc = 0;
 #define EDID_VID_INP	sc->sc_edid_info.edid_video_input
-
-	if (!(EDID_VID_INP & EDID_VIDEO_INPUT_COMPOSITE_SYNC)) {
+	if ((EDID_VID_INP & EDID_VIDEO_INPUT_COMPOSITE_SYNC)) {
+		dcl |= FFB_DAC_DAC_CTRL_VSYNC_DIS;
+		tgc = FFB_DAC_TGC_EQUAL_DISABLE;
+	} else {
 		dcl |= FFB_DAC_DAC_CTRL_SYNC_G;
 		if (EDID_VID_INP & EDID_VIDEO_INPUT_SEPARATE_SYNCS)
 			tgc |= FFB_DAC_TGC_VSYNC_DISABLE;
+		else
+			tgc = FFB_DAC_TGC_EQUAL_DISABLE;
 	}
 	if (EDID_VID_INP & EDID_VIDEO_INPUT_BLANK_TO_BLACK)
 		dcl |= FFB_DAC_DAC_CTRL_PED_ENABLE;

Index: src/sys/arch/sparc64/dev/ffbreg.h
diff -u src/sys/arch/sparc64/dev/ffbreg.h:1.8 src/sys/arch/sparc64/dev/ffbreg.h:1.9
--- src/sys/arch/sparc64/dev/ffbreg.h:1.8	Mon May  9 08:44:22 2011
+++ src/sys/arch/sparc64/dev/ffbreg.h	Sun Oct 23 06:06:24 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: ffbreg.h,v 1.8 2011/05/09 08:44:22 jdc Exp $	*/
+/*	$NetBSD: ffbreg.h,v 1.9 2011/10/23 06:06:24 jdc Exp $	*/
 /*	$OpenBSD: creatorreg.h,v 1.5 2002/07/29 06:21:45 jason Exp $	*/
 
 /*
@@ -103,8 +103,8 @@
 /* 0x5001 DAC control */
 #define	FFB_DAC_DAC_CTRL_SYNC_G		0x0020	/* enable sync on green */
 #define FFB_DAC_DAC_CTRL_PED_ENABLE	0x0040	/* enable pedestal */
-#define FFB_DAC_DAC_CTRL_VSYNC_REV	0x0080	/* reverse vsync (BT497A) */
-#define FFB_DAC_DAC_CTRL_POS_SYNC	0x0100	/* enable pos. sync (BT497A) */
+#define FFB_DAC_DAC_CTRL_VSYNC_DIS	0x0080	/* disable vsync pin */
+#define FFB_DAC_DAC_CTRL_POS_VSYNC	0x0100	/* enable pos. vsync */
 
 /* 0x6000 timing generator control */
 #define	FFB_DAC_TGC_VIDEO_ENABLE	0x01	/* enable DAC outputs */

Reply via email to