Module Name:    src
Committed By:   jmcneill
Date:           Sun Nov 30 20:04:57 UTC 2014

Modified Files:
        src/sys/arch/arm/allwinner: awin_debe.c

Log Message:
hide the hw cursor when blanking the screen


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/allwinner/awin_debe.c

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/arm/allwinner/awin_debe.c
diff -u src/sys/arch/arm/allwinner/awin_debe.c:1.9 src/sys/arch/arm/allwinner/awin_debe.c:1.10
--- src/sys/arch/arm/allwinner/awin_debe.c:1.9	Sun Nov 30 19:15:53 2014
+++ src/sys/arch/arm/allwinner/awin_debe.c	Sun Nov 30 20:04:57 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: awin_debe.c,v 1.9 2014/11/30 19:15:53 jmcneill Exp $ */
+/* $NetBSD: awin_debe.c,v 1.10 2014/11/30 20:04:57 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2014 Jared D. McNeill <jmcne...@invisible.ca>
@@ -36,7 +36,7 @@
 #define AWIN_DEBE_CURMAX	64
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: awin_debe.c,v 1.9 2014/11/30 19:15:53 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awin_debe.c,v 1.10 2014/11/30 20:04:57 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -69,6 +69,7 @@ struct awin_debe_softc {
 
 	uint16_t sc_margin;
 
+	bool sc_cursor_enable;
 	int sc_cursor_x, sc_cursor_y;
 	int sc_hot_x, sc_hot_y;
 	uint8_t sc_cursor_bitmap[8 * AWIN_DEBE_CURMAX];
@@ -320,6 +321,8 @@ awin_debe_set_cursor(struct awin_debe_so
 		else
 			val &= ~AWIN_DEBE_MODCTL_HWC_EN;
 		DEBE_WRITE(sc, AWIN_DEBE_MODCTL_REG, val);
+
+		sc->sc_cursor_enable = cur->enable;
 	}
 
 	if (cur->which & WSDISPLAY_CURSOR_DOHOT) {
@@ -504,10 +507,17 @@ awin_debe_ioctl(device_t self, u_long cm
 	case WSDISPLAYIO_SVIDEO:
 		enable = *(int *)data;
 		val = DEBE_READ(sc, AWIN_DEBE_MODCTL_REG);
-		if (enable)
+		if (enable) {
 			val |= AWIN_DEBE_MODCTL_LAY0_EN;
-		else
+			if (sc->sc_cursor_enable) {
+				val |= AWIN_DEBE_MODCTL_HWC_EN;
+			} else {
+				val &= ~AWIN_DEBE_MODCTL_HWC_EN;
+			}
+		} else {
 			val &= ~AWIN_DEBE_MODCTL_LAY0_EN;
+			val &= ~AWIN_DEBE_MODCTL_HWC_EN;
+		}
 		DEBE_WRITE(sc, AWIN_DEBE_MODCTL_REG, val);
 		return 0;
 	case WSDISPLAYIO_GVIDEO:

Reply via email to