projects
/
dos_sbtest
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed DMA bug
[dos_sbtest]
/
src
/
dma.c
diff --git
a/src/dma.c
b/src/dma.c
index
92f0a1b
..
17baead
100644
(file)
--- a/
src/dma.c
+++ b/
src/dma.c
@@
-100,8
+100,8
@@
static void dma_io(int chan, uint32_t phyaddr, int size, unsigned int flags, uns
mask(chan);
\r
outp(DMA_CLR_FLIPFLOP(chan), 0);
\r
\r
mask(chan);
\r
outp(DMA_CLR_FLIPFLOP(chan), 0);
\r
\r
- /* single / block / cascade */
\r
- mode = ((flags & 3) << 6) | MODE_CHAN(chan);
\r
+ /* first 2 bits of flags correspond to the mode bits 6,7 */
\r
+ mode = ((flags & 3) << 6) | dir | MODE_CHAN(chan);
\r
if(flags & DMA_DECR) mode |= MODE_DECR;
\r
if(flags & DMA_AUTO) mode |= MODE_AUTO;
\r
outp(DMA_MODE(chan), mode);
\r
if(flags & DMA_DECR) mode |= MODE_DECR;
\r
if(flags & DMA_AUTO) mode |= MODE_AUTO;
\r
outp(DMA_MODE(chan), mode);
\r