Module Name:    src
Committed By:   tsutsui
Date:           Wed Nov 30 11:36:50 UTC 2022

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

Log Message:
Fix silent bus error panic on 98543A topcat framebuffer on HP320 and HP360.

It looks DELAY(100)s before checking cmap_busy in old pre-wscons grf_tc.c
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/hp300/dev/Attic/grf_tc.c?rev=1.42
are actually necessary on 68020 (HP320) and 68030 (HP360) machines,
while it works without them on 68040 (HP380).

Should be pulled up to netbsd-9.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 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.5 src/sys/arch/hp300/dev/topcat.c:1.6
--- src/sys/arch/hp300/dev/topcat.c:1.5	Thu Apr 15 14:43:19 2021
+++ src/sys/arch/hp300/dev/topcat.c	Wed Nov 30 11:36:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: topcat.c,v 1.5 2021/04/15 14:43:19 tsutsui Exp $	*/
+/*	$NetBSD: topcat.c,v 1.6 2022/11/30 11:36:50 tsutsui Exp $	*/
 /*	$OpenBSD: topcat.c,v 1.15 2006/08/11 18:33:13 miod Exp $	*/
 
 /*
@@ -448,6 +448,8 @@ topcat_setcolor(struct diofb *fb, u_int 
 		tc->gdata  = fb->cmap.g[index];
 		tc->bdata  = fb->cmap.b[index];
 		tc->strobe = 0xff;
+		/* XXX delay required on 68020/30 to avoid bus error */
+		DELAY(100);
 
 		tccm_waitbusy(tc);
 		tc->cindex = 0;
@@ -459,6 +461,8 @@ topcat_setcolor(struct diofb *fb, u_int 
 		tc->bdata  = fb->cmap.b[index];
 		tc->cindex = ~index;
 		tc->strobe = 0xff;
+		/* XXX delay required on 68020/30 to avoid bus error */
+		DELAY(100);
 
 		tccm_waitbusy(tc);
 		tc->rdata  = 0;

Reply via email to