hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/arch/x86/include/asm/floppy.h
....@@ -31,8 +31,8 @@
3131 #define CSW fd_routine[can_use_virtual_dma & 1]
3232
3333
34
-#define fd_inb(port) inb_p(port)
35
-#define fd_outb(value, port) outb_p(value, port)
34
+#define fd_inb(base, reg) inb_p((base) + (reg))
35
+#define fd_outb(value, base, reg) outb_p(value, (base) + (reg))
3636
3737 #define fd_request_dma() CSW._request_dma(FLOPPY_DMA, "floppy")
3838 #define fd_free_dma() CSW._free_dma(FLOPPY_DMA)
....@@ -77,25 +77,26 @@
7777 st = 1;
7878 for (lcount = virtual_dma_count, lptr = virtual_dma_addr;
7979 lcount; lcount--, lptr++) {
80
- st = inb(virtual_dma_port + 4) & 0xa0;
81
- if (st != 0xa0)
80
+ st = inb(virtual_dma_port + FD_STATUS);
81
+ st &= STATUS_DMA | STATUS_READY;
82
+ if (st != (STATUS_DMA | STATUS_READY))
8283 break;
8384 if (virtual_dma_mode)
84
- outb_p(*lptr, virtual_dma_port + 5);
85
+ outb_p(*lptr, virtual_dma_port + FD_DATA);
8586 else
86
- *lptr = inb_p(virtual_dma_port + 5);
87
+ *lptr = inb_p(virtual_dma_port + FD_DATA);
8788 }
8889 virtual_dma_count = lcount;
8990 virtual_dma_addr = lptr;
90
- st = inb(virtual_dma_port + 4);
91
+ st = inb(virtual_dma_port + FD_STATUS);
9192 }
9293
9394 #ifdef TRACE_FLPY_INT
9495 calls++;
9596 #endif
96
- if (st == 0x20)
97
+ if (st == STATUS_DMA)
9798 return IRQ_HANDLED;
98
- if (!(st & 0x20)) {
99
+ if (!(st & STATUS_DMA)) {
99100 virtual_dma_residue += virtual_dma_count;
100101 virtual_dma_count = 0;
101102 #ifdef TRACE_FLPY_INT