]> Pileus Git - ~andy/linux/blobdiff - arch/m68k/atari/stdma.c
Merge commit 'v2.6.28-rc1' into sched/urgent
[~andy/linux] / arch / m68k / atari / stdma.c
index 5283c73d3f77856aa627599da61b412578aee0a8..d1bd029a34ac612acfe5b04936a8dab1821ce2de 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/wait.h>
+#include <linux/module.h>
 
 #include <asm/atari_stdma.h>
 #include <asm/atariints.h>
@@ -44,7 +45,7 @@
 
 static int stdma_locked;                       /* the semaphore */
                                                /* int func to be called */
-static irqreturn_t (*stdma_isr)(int, void *);
+static irq_handler_t stdma_isr;
 static void *stdma_isr_data;                   /* data passed to isr */
 static DECLARE_WAIT_QUEUE_HEAD(stdma_wait);    /* wait queue for ST-DMA */
 
@@ -75,7 +76,7 @@ static irqreturn_t stdma_int (int irq, void *dummy);
  *
  */
 
-void stdma_lock(irqreturn_t (*handler)(int, void *), void *data)
+void stdma_lock(irq_handler_t handler, void *data)
 {
        unsigned long flags;
 
@@ -91,6 +92,7 @@ void stdma_lock(irqreturn_t (*handler)(int, void *), void *data)
        stdma_isr_data = data;
        local_irq_restore(flags);
 }
+EXPORT_SYMBOL(stdma_lock);
 
 
 /*
@@ -117,6 +119,7 @@ void stdma_release(void)
 
        local_irq_restore(flags);
 }
+EXPORT_SYMBOL(stdma_release);
 
 
 /*
@@ -134,6 +137,7 @@ int stdma_others_waiting(void)
 {
        return waitqueue_active(&stdma_wait);
 }
+EXPORT_SYMBOL(stdma_others_waiting);
 
 
 /*
@@ -155,6 +159,7 @@ int stdma_islocked(void)
 {
        return stdma_locked;
 }
+EXPORT_SYMBOL(stdma_islocked);
 
 
 /*
@@ -174,7 +179,7 @@ int stdma_islocked(void)
 void __init stdma_init(void)
 {
        stdma_isr = NULL;
-       request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW,
+       request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW | IRQF_SHARED,
                    "ST-DMA: floppy/ACSI/IDE/Falcon-SCSI", stdma_int);
 }