fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / char / mwave / 3780i.c
index 0fb356e..4e4865e 100644 (file)
 *      First release to the public
 */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/unistd.h>
 #include <linux/delay.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
+#include <linux/bitops.h>
+#include <linux/sched.h>       /* cond_resched() */
+
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <asm/irq.h>
-#include <asm/bitops.h>
 #include "smapi.h"
 #include "mwavedd.h"
 #include "3780i.h"
 
-static spinlock_t dsp_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(dsp_lock);
 static unsigned long flags;
 
 
@@ -107,8 +108,8 @@ void dsp3780I_WriteMsaCfg(unsigned short usDspBaseIO,
        spin_unlock_irqrestore(&dsp_lock, flags);
 }
 
-void dsp3780I_WriteGenCfg(unsigned short usDspBaseIO, unsigned uIndex,
-                          unsigned char ucValue)
+static void dsp3780I_WriteGenCfg(unsigned short usDspBaseIO, unsigned uIndex,
+                                unsigned char ucValue)
 {
        DSP_ISA_SLAVE_CONTROL rSlaveControl;
        DSP_ISA_SLAVE_CONTROL rSlaveControl_Save;
@@ -141,6 +142,7 @@ void dsp3780I_WriteGenCfg(unsigned short usDspBaseIO, unsigned uIndex,
 
 }
 
+#if 0
 unsigned char dsp3780I_ReadGenCfg(unsigned short usDspBaseIO,
                                   unsigned uIndex)
 {
@@ -167,6 +169,7 @@ unsigned char dsp3780I_ReadGenCfg(unsigned short usDspBaseIO,
 
        return ucValue;
 }
+#endif  /*  0  */
 
 int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
                        unsigned short *pIrqMap,
@@ -467,10 +470,10 @@ int dsp3780I_Run(DSP_3780I_CONFIG_SETTINGS * pSettings)
 }
 
 
-int dsp3780I_ReadDStore(unsigned short usDspBaseIO, void *pvBuffer,
+int dsp3780I_ReadDStore(unsigned short usDspBaseIO, void __user *pvBuffer,
                         unsigned uCount, unsigned long ulDSPAddr)
 {
-       unsigned short *pusBuffer = pvBuffer;
+       unsigned short __user *pusBuffer = pvBuffer;
        unsigned short val;
 
 
@@ -508,10 +511,10 @@ int dsp3780I_ReadDStore(unsigned short usDspBaseIO, void *pvBuffer,
 }
 
 int dsp3780I_ReadAndClearDStore(unsigned short usDspBaseIO,
-                                void *pvBuffer, unsigned uCount,
+                                void __user *pvBuffer, unsigned uCount,
                                 unsigned long ulDSPAddr)
 {
-       unsigned short *pusBuffer = pvBuffer;
+       unsigned short __user *pusBuffer = pvBuffer;
        unsigned short val;
 
 
@@ -549,10 +552,10 @@ int dsp3780I_ReadAndClearDStore(unsigned short usDspBaseIO,
 }
 
 
-int dsp3780I_WriteDStore(unsigned short usDspBaseIO, void *pvBuffer,
+int dsp3780I_WriteDStore(unsigned short usDspBaseIO, void __user *pvBuffer,
                          unsigned uCount, unsigned long ulDSPAddr)
 {
-       unsigned short *pusBuffer = pvBuffer;
+       unsigned short __user *pusBuffer = pvBuffer;
 
 
        PRINTK_5(TRACE_3780I,
@@ -590,10 +593,10 @@ int dsp3780I_WriteDStore(unsigned short usDspBaseIO, void *pvBuffer,
 }
 
 
-int dsp3780I_ReadIStore(unsigned short usDspBaseIO, void *pvBuffer,
+int dsp3780I_ReadIStore(unsigned short usDspBaseIO, void __user *pvBuffer,
                         unsigned uCount, unsigned long ulDSPAddr)
 {
-       unsigned short *pusBuffer = pvBuffer;
+       unsigned short __user *pusBuffer = pvBuffer;
 
        PRINTK_5(TRACE_3780I,
                "3780i::dsp3780I_ReadIStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",
@@ -637,10 +640,10 @@ int dsp3780I_ReadIStore(unsigned short usDspBaseIO, void *pvBuffer,
 }
 
 
-int dsp3780I_WriteIStore(unsigned short usDspBaseIO, void *pvBuffer,
+int dsp3780I_WriteIStore(unsigned short usDspBaseIO, void __user *pvBuffer,
                          unsigned uCount, unsigned long ulDSPAddr)
 {
-       unsigned short *pusBuffer = pvBuffer;
+       unsigned short __user *pusBuffer = pvBuffer;
 
        PRINTK_5(TRACE_3780I,
                "3780i::dsp3780I_WriteIStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",