static void dma_io(int chan, uint32_t phyaddr, int size, unsigned int flags, unsigned int dir)\r
{\r
unsigned int mode;\r
+ unsigned char page;\r
\r
mask(chan);\r
outp(clrff_port[chan], 0);\r
if(flags & DMA_AUTO) mode |= MODE_AUTO;\r
outp(mode_port[chan], mode);\r
\r
+ page = (phyaddr >> 16) & 0xff;\r
+\r
if(IS_16BIT(chan)) {\r
phyaddr >>= 1;\r
size >>= 1;\r
\r
outp(addr_port[chan], phyaddr & 0xff);\r
outp(addr_port[chan], (phyaddr >> 8) & 0xff);\r
- outp(page_port[chan], (phyaddr >> 16) & 0xff);\r
+ outp(page_port[chan], page);\r
\r
size--;\r
outp(count_port[chan], size & 0xff);\r