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: