Module Name:    src
Committed By:   tsutsui
Date:           Sat Apr 24 16:24:14 UTC 2021

Modified Files:
        src/sys/arch/x68k/dev: ms.c

Log Message:
Tidy up callout(9) implementation to handle mouse packets.

- define and use proper macro to specify ticks
- use callout_schedule(9) rather than callout_reset(9) to restart timer

No functional changes.


To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/x68k/dev/ms.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/x68k/dev/ms.c
diff -u src/sys/arch/x68k/dev/ms.c:1.35 src/sys/arch/x68k/dev/ms.c:1.36
--- src/sys/arch/x68k/dev/ms.c:1.35	Sun Feb  7 16:13:56 2021
+++ src/sys/arch/x68k/dev/ms.c	Sat Apr 24 16:24:14 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: ms.c,v 1.35 2021/02/07 16:13:56 tsutsui Exp $ */
+/*	$NetBSD: ms.c,v 1.36 2021/04/24 16:24:14 tsutsui Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -45,7 +45,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ms.c,v 1.35 2021/02/07 16:13:56 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ms.c,v 1.36 2021/04/24 16:24:14 tsutsui Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -87,6 +87,16 @@ __KERNEL_RCSID(0, "$NetBSD: ms.c,v 1.35 
 #define MS_BPS 4800
 
 /*
+ * Send mouse commands per MS_TICK.
+ */
+#ifndef HZ
+#define HZ		100
+#endif
+#define MS_TICK		2
+#define MS_TIMEOUT_SEC	5
+#define MS_TIMEOUT	((MS_TIMEOUT_SEC * HZ) / MS_TICK)
+
+/*
  * Mouse state.  A SHARP X1/X680x0 mouse is a fairly simple device,
  * producing three-byte blobs of the form:
  *
@@ -258,7 +268,7 @@ msopen(dev_t dev, int flags, int mode, s
 	ms->ms_nodata = 0;
 
 	/* start sequencer */
-	ms_modem(ms);
+	callout_reset(&ms->ms_modem_ch, MS_TICK, ms_modem, ms);
 
 	return 0;
 }
@@ -649,9 +659,9 @@ ms_modem(void *arg)
 
 	mutex_enter(&ms->ms_lock);
 
-	if (ms->ms_nodata++ > 250) { /* XXX */
-		log(LOG_ERR, "%s: no data for 5 secs. resetting.\n",
-		    device_xname(ms->ms_dev));
+	if (ms->ms_nodata++ > MS_TIMEOUT) {
+		log(LOG_ERR, "%s: no data for %d secs. resetting.\n",
+		    device_xname(ms->ms_dev), MS_TIMEOUT_SEC);
 		ms->ms_byteno = -1;
 		ms->ms_nodata = 0;
 		ms->ms_rts = 0;
@@ -670,5 +680,5 @@ ms_modem(void *arg)
 	}
 
 	mutex_exit(&ms->ms_lock);
-	callout_reset(&ms->ms_modem_ch, 2, ms_modem, ms);
+	callout_schedule(&ms->ms_modem_ch, MS_TICK);
 }

Reply via email to