summaryrefslogtreecommitdiff
path: root/sys/i386/isa/labpc.c
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>1997-09-21 21:41:49 +0000
committerJustin T. Gibbs <gibbs@FreeBSD.org>1997-09-21 21:41:49 +0000
commit02a199102d13072dba351ddf7223e2935a63b694 (patch)
tree2a3eb6b8b56375d5cb0561151c4bf6d1c2f4e7f2 /sys/i386/isa/labpc.c
parent47558d4d775987b6d27a39adf50677442273bda1 (diff)
Notes
Diffstat (limited to 'sys/i386/isa/labpc.c')
-rw-r--r--sys/i386/isa/labpc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/i386/isa/labpc.c b/sys/i386/isa/labpc.c
index 003189cfaddc..39b374d504d0 100644
--- a/sys/i386/isa/labpc.c
+++ b/sys/i386/isa/labpc.c
@@ -140,6 +140,11 @@ struct ctlr
*/
u_char dcr_val, dcr_is;
+ /*
+ * Handle for canceling our timeout.
+ */
+ struct callout_handle ch;
+
/* Device configuration structure:
*/
#ifdef DEVFS
@@ -314,7 +319,7 @@ done_and_start_next(struct ctlr *ctlr, struct buf *bp, int err)
ctlr->start_queue.b_actf = bp->b_actf;
bp_done(bp, err);
- untimeout(tmo_stop, ctlr);
+ untimeout(tmo_stop, ctlr, ctlr->ch);
start(ctlr);
}
@@ -388,7 +393,6 @@ labpcinit(void)
if (labpcs)
{
bzero(labpcs, NLABPC * sizeof(struct cltr *));
- return 1;
}
return 0;
}
@@ -464,6 +468,7 @@ labpcattach(struct isa_device *dev)
{
struct ctlr *ctlr = labpcs[dev->id_unit];
+ callout_handle_init(&ctlr->ch);
ctlr->sample_us = (1000000.0 / (double)LABPC_DEFAULT_HERZ) + .50;
reset(ctlr);
@@ -796,7 +801,7 @@ start(struct ctlr *ctlr)
(*ctlr->intr)(ctlr);
}
- timeout(tmo_stop, ctlr, ctlr->tmo);
+ ctlr->ch = timeout(tmo_stop, ctlr, ctlr->tmo);
}
static void