diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2005-02-11 22:24:02 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2005-02-11 22:24:02 +0000 |
| commit | 09dbf9afd38b91ce9826f1565e346ea689246c90 (patch) | |
| tree | e2aa9d454858de84fefc8ca74788cf3405ef1171 /sys/dev/ieee488 | |
| parent | 0a1a279e93bb34344b8231ac2d48a78f6da8e17b (diff) | |
Notes
Diffstat (limited to 'sys/dev/ieee488')
| -rw-r--r-- | sys/dev/ieee488/upd7210.c | 10 |
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) { |
