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); }