summaryrefslogtreecommitdiff
path: root/sys/arch/mac68k/dev/espvar.h
diff options
context:
space:
mode:
authorbriggs <briggs@cvs.openbsd.org>1996-11-02 06:47:23 +0000
committerbriggs <briggs@cvs.openbsd.org>1996-11-02 06:47:23 +0000
commitb7ae6861f731e1c51e096294ae9cb1eda7ba7766 (patch)
tree976d84b8597e6ab18b7a624b6a9cc8880daef01e /sys/arch/mac68k/dev/espvar.h
parent1fd696a682b5adc6123b8ee6b65df7d6fc4307bc (diff)
Improve reliability on my Q700, at least. Was getting the occasional
glitch--an extra byte on occasion.
Diffstat (limited to 'sys/arch/mac68k/dev/espvar.h')
-rw-r--r--sys/arch/mac68k/dev/espvar.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/arch/mac68k/dev/espvar.h b/sys/arch/mac68k/dev/espvar.h
index 8624953a535..ba7ab77ad4d 100644
--- a/sys/arch/mac68k/dev/espvar.h
+++ b/sys/arch/mac68k/dev/espvar.h
@@ -354,7 +354,8 @@ ESP_READ_REG(sc, reg)
/* DMA macros for ESP */
#define DMA_ISINTR(sc) (ESP_READ_REG((sc)->sc_esp, ESP_STAT) & 0x80)
-#define DMA_RESET(sc) do { (sc)->sc_active = 0; } while(0)
+#define DMA_RESET(sc) do { (sc)->sc_active = 0; \
+ (sc)->sc_tc = 0;} while(0)
#define DMA_INTR(sc) dma_intr(sc)
#define DMA_SETUP(sc, paddr, plen, datain, pdmasize) \
do { \
@@ -362,6 +363,7 @@ ESP_READ_REG(sc, reg)
(sc)->sc_pdmalen = plen; \
(sc)->sc_datain = datain; \
(sc)->sc_dmasize = *pdmasize; \
+ (sc)->sc_tc = 0; \
} while (0)
#define DMA_GO(sc) \
@@ -370,6 +372,7 @@ ESP_READ_REG(sc, reg)
ESP_WRITE_REG((sc)->sc_esp, \
ESP_FIFO, **(sc)->sc_dmaaddr); \
(*(sc)->sc_pdmalen)--; \
+ (*(sc)->sc_dmaaddr)++; \
} \
(sc)->sc_active = 1; \
} while (0)