| .. | .. |
|---|
| 63 | 63 | } |
|---|
| 64 | 64 | |
|---|
| 65 | 65 | |
|---|
| 66 | | -static __inline__ unsigned char fd_inb(int port) |
|---|
| 66 | +static __inline__ unsigned char fd_inb(int base, int reg) |
|---|
| 67 | 67 | { |
|---|
| 68 | 68 | if(MACH_IS_Q40) |
|---|
| 69 | | - return inb_p(port); |
|---|
| 69 | + return inb_p(base + reg); |
|---|
| 70 | 70 | else if(MACH_IS_SUN3X) |
|---|
| 71 | | - return sun3x_82072_fd_inb(port); |
|---|
| 71 | + return sun3x_82072_fd_inb(base + reg); |
|---|
| 72 | 72 | return 0; |
|---|
| 73 | 73 | } |
|---|
| 74 | 74 | |
|---|
| 75 | | -static __inline__ void fd_outb(unsigned char value, int port) |
|---|
| 75 | +static __inline__ void fd_outb(unsigned char value, int base, int reg) |
|---|
| 76 | 76 | { |
|---|
| 77 | 77 | if(MACH_IS_Q40) |
|---|
| 78 | | - outb_p(value, port); |
|---|
| 78 | + outb_p(value, base + reg); |
|---|
| 79 | 79 | else if(MACH_IS_SUN3X) |
|---|
| 80 | | - sun3x_82072_fd_outb(value, port); |
|---|
| 80 | + sun3x_82072_fd_outb(value, base + reg); |
|---|
| 81 | 81 | } |
|---|
| 82 | 82 | |
|---|
| 83 | 83 | |
|---|
| .. | .. |
|---|
| 211 | 211 | st=1; |
|---|
| 212 | 212 | for(lcount=virtual_dma_count, lptr=virtual_dma_addr; |
|---|
| 213 | 213 | lcount; lcount--, lptr++) { |
|---|
| 214 | | - st=inb(virtual_dma_port+4) & 0xa0 ; |
|---|
| 215 | | - if(st != 0xa0) |
|---|
| 214 | + st = inb(virtual_dma_port + FD_STATUS); |
|---|
| 215 | + st &= STATUS_DMA | STATUS_READY; |
|---|
| 216 | + if (st != (STATUS_DMA | STATUS_READY)) |
|---|
| 216 | 217 | break; |
|---|
| 217 | 218 | if(virtual_dma_mode) |
|---|
| 218 | | - outb_p(*lptr, virtual_dma_port+5); |
|---|
| 219 | + outb_p(*lptr, virtual_dma_port + FD_DATA); |
|---|
| 219 | 220 | else |
|---|
| 220 | | - *lptr = inb_p(virtual_dma_port+5); |
|---|
| 221 | + *lptr = inb_p(virtual_dma_port + FD_DATA); |
|---|
| 221 | 222 | } |
|---|
| 222 | 223 | |
|---|
| 223 | 224 | virtual_dma_count = lcount; |
|---|
| 224 | 225 | virtual_dma_addr = lptr; |
|---|
| 225 | | - st = inb(virtual_dma_port+4); |
|---|
| 226 | + st = inb(virtual_dma_port + FD_STATUS); |
|---|
| 226 | 227 | } |
|---|
| 227 | 228 | |
|---|
| 228 | 229 | #ifdef TRACE_FLPY_INT |
|---|
| 229 | 230 | calls++; |
|---|
| 230 | 231 | #endif |
|---|
| 231 | | - if(st == 0x20) |
|---|
| 232 | + if (st == STATUS_DMA) |
|---|
| 232 | 233 | return IRQ_HANDLED; |
|---|
| 233 | | - if(!(st & 0x20)) { |
|---|
| 234 | + if (!(st & STATUS_DMA)) { |
|---|
| 234 | 235 | virtual_dma_residue += virtual_dma_count; |
|---|
| 235 | 236 | virtual_dma_count=0; |
|---|
| 236 | 237 | #ifdef TRACE_FLPY_INT |
|---|