aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ieee488
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2005-02-11 22:24:02 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2005-02-11 22:24:02 +0000
commit09dbf9afd38b91ce9826f1565e346ea689246c90 (patch)
treee2aa9d454858de84fefc8ca74788cf3405ef1171 /sys/dev/ieee488
parent0a1a279e93bb34344b8231ac2d48a78f6da8e17b (diff)
Notes
Diffstat (limited to 'sys/dev/ieee488')
-rw-r--r--sys/dev/ieee488/upd7210.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/ieee488/upd7210.c b/sys/dev/ieee488/upd7210.c
index ce2c91be4ade..6fbb44f00c86 100644
--- a/sys/dev/ieee488/upd7210.c
+++ b/sys/dev/ieee488/upd7210.c
@@ -347,14 +347,16 @@ gpib_ib_irq(struct upd7210 *u)
ib = u->ibfoo;
- if ((u->rreg[ISR2] & IXR2_CO) && ib->cmdlen > 0) {
- write_reg(u, CDOR, *ib->cmdbuf);
- ib->cmdbuf++;
- ib->cmdlen--;
+ if ((u->rreg[ISR2] & IXR2_CO) && ib->cmdbuf != NULL) {
if (ib->cmdlen == 0) {
wakeup(ib);
+ ib->cmdbuf = NULL;
write_reg(u, IMR2, 0);
+ return (1);
}
+ write_reg(u, CDOR, *ib->cmdbuf);
+ ib->cmdbuf++;
+ ib->cmdlen--;
return (1);
}
if ((u->rreg[ISR1] & IXR1_DO) && ib->dobuf != NULL) {