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