fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-i386 / floppy.h
index 79727af..44ef2f5 100644 (file)
@@ -51,12 +51,11 @@ static char *virtual_dma_addr;
 static int virtual_dma_mode;
 static int doing_pdma;
 
-static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
+static irqreturn_t floppy_hardint(int irq, void *dev_id)
 {
        register unsigned char st;
 
 #undef TRACE_FLPY_INT
-#define NO_FLOPPY_ASSEMBLER
 
 #ifdef TRACE_FLPY_INT
        static int calls=0;
@@ -64,45 +63,13 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
        static int dma_wait=0;
 #endif
        if (!doing_pdma)
-               return floppy_interrupt(irq, dev_id, regs);
+               return floppy_interrupt(irq, dev_id);
 
 #ifdef TRACE_FLPY_INT
        if(!calls)
                bytes = virtual_dma_count;
 #endif
 
-#ifndef NO_FLOPPY_ASSEMBLER
-       __asm__ (
-       "testl %1,%1"
-       "je 3f"
-"1:    inb %w4,%b0"
-       "andb $160,%b0"
-       "cmpb $160,%b0"
-       "jne 2f"
-       "incw %w4"
-       "testl %3,%3"
-       "jne 4f"
-       "inb %w4,%b0"
-       "movb %0,(%2)"
-       "jmp 5f"
-"4:            movb (%2),%0"
-       "outb %b0,%w4"
-"5:    decw %w4"
-       "outb %0,$0x80"
-       "decl %1"
-       "incl %2"
-       "testl %1,%1"
-       "jne 1b"
-"3:    inb %w4,%b0"
-"2:    "
-       : "=a" ((char) st), 
-       "=c" ((long) virtual_dma_count), 
-       "=S" ((long) virtual_dma_addr)
-       : "b" ((long) virtual_dma_mode),
-       "d" ((short) virtual_dma_port+4), 
-       "1" ((long) virtual_dma_count),
-       "2" ((long) virtual_dma_addr));
-#else  
        {
                register int lcount;
                register char *lptr;
@@ -122,7 +89,6 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
                virtual_dma_addr = lptr;
                st = inb(virtual_dma_port+4);
        }
-#endif
 
 #ifdef TRACE_FLPY_INT
        calls++;
@@ -140,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
                dma_wait=0;
 #endif
                doing_pdma = 0;
-               floppy_interrupt(irq, dev_id, regs);
+               floppy_interrupt(irq, dev_id);
                return IRQ_HANDLED;
        }
 #ifdef TRACE_FLPY_INT
@@ -178,12 +144,11 @@ static int vdma_get_dma_residue(unsigned int dummy)
 static int fd_request_irq(void)
 {
        if(can_use_virtual_dma)
-               return request_irq(FLOPPY_IRQ, floppy_hardint,SA_INTERRUPT,
-                                                  "floppy", NULL);
+               return request_irq(FLOPPY_IRQ, floppy_hardint,
+                                  IRQF_DISABLED, "floppy", NULL);
        else
                return request_irq(FLOPPY_IRQ, floppy_interrupt,
-                                                  SA_INTERRUPT|SA_SAMPLE_RANDOM,
-                                                  "floppy", NULL);     
+                                  IRQF_DISABLED, "floppy", NULL);
 
 }