Module Name:    src
Committed By:   tsutsui
Date:           Mon Apr 29 17:39:59 UTC 2024

Modified Files:
        src/sys/arch/hp300/dev: topcat.c

Log Message:
Use proper planemask per a vaild number of planes.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/hp300/dev/topcat.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/hp300/dev/topcat.c
diff -u src/sys/arch/hp300/dev/topcat.c:1.7 src/sys/arch/hp300/dev/topcat.c:1.8
--- src/sys/arch/hp300/dev/topcat.c:1.7	Mon Apr 29 15:34:57 2024
+++ src/sys/arch/hp300/dev/topcat.c	Mon Apr 29 17:39:59 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: topcat.c,v 1.7 2024/04/29 15:34:57 tsutsui Exp $	*/
+/*	$NetBSD: topcat.c,v 1.8 2024/04/29 17:39:59 tsutsui Exp $	*/
 /*	$OpenBSD: topcat.c,v 1.15 2006/08/11 18:33:13 miod Exp $	*/
 
 /*
@@ -395,7 +395,7 @@ topcat_restore(struct diofb *fb)
 	tc->prr  = RR_COPY;
 
 	/* Enable display */
-	tc->nblank = 0xff;
+	tc->nblank = fb->planemask;
 }
 
 int
@@ -455,7 +455,7 @@ topcat_setcolor(struct diofb *fb, u_int 
 
 	if (tc->regs.fbid != GID_TOPCAT) {
 		tccm_waitbusy(tc);
-		tc->plane_mask = 0xff;
+		tc->plane_mask = fb->planemask;
 		tc->cindex = ~index;
 		tc->rdata  = fb->cmap.r[index];
 		tc->gdata  = fb->cmap.g[index];
@@ -468,7 +468,7 @@ topcat_setcolor(struct diofb *fb, u_int 
 		tc->cindex = 0;
 	} else {
 		tccm_waitbusy(tc);
-		tc->plane_mask = 0xff;
+		tc->plane_mask = fb->planemask;
 		tc->rdata  = fb->cmap.r[index];
 		tc->gdata  = fb->cmap.g[index];
 		tc->bdata  = fb->cmap.b[index];
@@ -526,12 +526,13 @@ topcat_windowmove(struct diofb *fb, uint
 
 	tc_waitbusy(tc, fb->planemask);
 
-	tc->wen = planemask;
-	tc->wmrr = rop;
 	if (planemask != 0xff) {
 		tc->wen = planemask ^ 0xff;
 		tc->wmrr = rop ^ 0x0f;
 		tc->wen = fb->planemask;
+	} else {
+		tc->wen = planemask;
+		tc->wmrr = rop;
 	}
 	tc->source_y = sy;
 	tc->source_x = sx;

Reply via email to