Subject: port-alpha/8423: Spurious(?) zsms errors
To: None <gnats-bugs@gnats.netbsd.org>
From: None <perseant@netbsd.org>
List: netbsd-bugs
Date: 09/16/1999 10:51:00
>Number:         8423
>Category:       port-alpha
>Synopsis:       zsms continually gives spurious(?) frame errors
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-alpha-maintainer (NetBSD/alpha Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 16 10:50:01 1999
>Last-Modified:
>Originator:     Konrad Schroder
>Organization:
						Konrad Schroder
						perseant@hhhh.org
>Release:        ~10 September 1999
>Environment:
	
System: NetBSD bitter 1.4K NetBSD 1.4K (BITTER) #12: Wed Sep 15 10:54:16 PDT 1999     perseant@bitter:/usr/src/sys/arch/alpha/compile/BITTER alpha

>Description:
	When reading data from the zsms driver, the console suffers a deluge
	of "zsms0: input error (0xXXXXXX)" where XXX varies, but always ends
	in 0x47.  The message comes from the test

               if (ring_data & (ZSRR1_FE | ZSRR1_PE)) {
                       log(LOG_ERR, "%s: input error (0x%x)\n",

	where ZSRR_FE is very often set.  I don't know, however, whether this
	is a deficiency in the driver, hardware, or what (having limited
	hardware available for testing and little knowledge of it).
>How-To-Repeat:
	My test code was a hacked-up sfb X server
	(ftp://gro.hhhh.org/pub/perseant/sfb), but booting with a TCWSCONS
	kernel and using "cat /dev/wsmouse0 > /dev/null" should give the
	same result.

>Fix:
	Work-around: #if 0  :^)  Someone with a working knowledge of the
	hardware should be able to improve on this, though, I think.

Index: dec/zsms.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/dec/zsms.c,v
retrieving revision 1.3
diff -u -r1.3 zsms.c
--- zsms.c	1999/02/03 20:22:28	1.3
+++ zsms.c	1999/09/15 19:19:11
@@ -427,8 +427,19 @@
 
 		if (ring_data & ZSRR1_DO)
 			intr_flags |= INTR_RX_OVERRUN;
-		if (ring_data & (ZSRR1_FE | ZSRR1_PE)) {
-			log(LOG_ERR, "%s: input error (0x%x)\n",
+#if 0
+		/*
+		 * On DEC 5000/[345]00, the mouse gives this error
+		 * *all the time*, without apparent loss of function.
+		 */
+		if (ring_data & ZSRR1_FE) {
+			log(LOG_ERR, "%s: frame error (0x%x)\n",
+				zsms->zsms_dev.dv_xname, ring_data);
+			c = -1;	/* signal input error */
+		}
+#endif
+		if (ring_data & ZSRR1_PE) {
+			log(LOG_ERR, "%s: parity error (0x%x)\n",
 				zsms->zsms_dev.dv_xname, ring_data);
 			c = -1;	/* signal input error */
 		}
>Audit-Trail:
>Unformatted: