Add changes from the Linux-2.6 tree.
[linux-2.6.git] / drivers / char / mwave / tp3780i.c
index 373173d..f282976 100644 (file)
@@ -46,7 +46,6 @@
 *      First release to the public
 */
 
-#include <linux/version.h>
 #include <linux/interrupt.h>
 #include <linux/kernel.h>
 #include <linux/ptrace.h>
@@ -96,14 +95,14 @@ static void EnableSRAM(THINKPAD_BD_DATA * pBDData)
 }
 
 
-static irqreturn_t UartInterrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t UartInterrupt(int irq, void *dev_id)
 {
        PRINTK_3(TRACE_TP3780I,
-               "tp3780i::UartInterrupt entry irq %x dev_id %x\n", irq, (int) dev_id);
+               "tp3780i::UartInterrupt entry irq %x dev_id %p\n", irq, dev_id);
        return IRQ_HANDLED;
 }
 
-static irqreturn_t DspInterrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t DspInterrupt(int irq, void *dev_id)
 {
        pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd;
        DSP_3780I_CONFIG_SETTINGS *pSettings = &pDrvData->rBDData.rDspSettings;
@@ -111,7 +110,7 @@ static irqreturn_t DspInterrupt(int irq, void *dev_id, struct pt_regs *regs)
        unsigned short usIPCSource = 0, usIsolationMask, usPCNum;
 
        PRINTK_3(TRACE_TP3780I,
-               "tp3780i::DspInterrupt entry irq %x dev_id %x\n", irq, (int) dev_id);
+               "tp3780i::DspInterrupt entry irq %x dev_id %p\n", irq, dev_id);
 
        if (dsp3780I_GetIPCSource(usDspBaseIO, &usIPCSource) == 0) {
                PRINTK_2(TRACE_TP3780I,
@@ -242,20 +241,14 @@ int tp3780I_ClaimResources(THINKPAD_BD_DATA * pBDData)
 {
        int retval = 0;
        DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
        struct resource *pres;
-#endif
 
        PRINTK_2(TRACE_TP3780I,
                "tp3780i::tp3780I_ClaimResources entry pBDData %p\n", pBDData);
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
        pres = request_region(pSettings->usDspBaseIO, 16, "mwave_3780i");
        if ( pres == NULL ) retval = -EIO;
-#else
-       retval = check_region(pSettings->usDspBaseIO, 16);
-       if (!retval) request_region(pSettings->usDspBaseIO, 16, "mwave_3780i");
-#endif
+
        if (retval) {
                PRINTK_ERROR(KERN_ERR_MWAVE "tp3780i::tp3780I_ClaimResources: Error: Could not claim I/O region starting at %x\n", pSettings->usDspBaseIO);
                retval = -EIO;
@@ -277,7 +270,7 @@ int tp3780I_ReleaseResources(THINKPAD_BD_DATA * pBDData)
        release_region(pSettings->usDspBaseIO & (~3), 16);
 
        if (pSettings->bInterruptClaimed) {
-               free_irq(pSettings->usDspIrq, 0);
+               free_irq(pSettings->usDspIrq, NULL);
                pSettings->bInterruptClaimed = FALSE;
        }
 
@@ -292,7 +285,7 @@ int tp3780I_ReleaseResources(THINKPAD_BD_DATA * pBDData)
 int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
 {
        DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
-       BOOLEAN bDSPPoweredUp = FALSE, bDSPEnabled = FALSE, bInterruptAllocated = FALSE;
+       BOOLEAN bDSPPoweredUp = FALSE, bInterruptAllocated = FALSE;
 
        PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_EnableDSP entry pBDData %p\n", pBDData);
 
@@ -368,14 +361,14 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
        pSettings->bPllBypass = TP_CFG_PllBypass;
        pSettings->usChipletEnable = TP_CFG_ChipletEnable;
 
-       if (request_irq(pSettings->usUartIrq, &UartInterrupt, 0, "mwave_uart", 0)) {
+       if (request_irq(pSettings->usUartIrq, &UartInterrupt, 0, "mwave_uart", NULL)) {
                PRINTK_ERROR(KERN_ERR_MWAVE "tp3780i::tp3780I_EnableDSP: Error: Could not get UART IRQ %x\n", pSettings->usUartIrq);
                goto exit_cleanup;
        } else {                /* no conflict just release */
-               free_irq(pSettings->usUartIrq, 0);
+               free_irq(pSettings->usUartIrq, NULL);
        }
 
-       if (request_irq(pSettings->usDspIrq, &DspInterrupt, 0, "mwave_3780i", 0)) {
+       if (request_irq(pSettings->usDspIrq, &DspInterrupt, 0, "mwave_3780i", NULL)) {
                PRINTK_ERROR("tp3780i::tp3780I_EnableDSP: Error: Could not get 3780i IRQ %x\n", pSettings->usDspIrq);
                goto exit_cleanup;
        } else {
@@ -397,8 +390,6 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
        if (dsp3780I_EnableDSP(pSettings, s_ausThinkpadIrqToField, s_ausThinkpadDmaToField)) {
                PRINTK_ERROR("tp3780i::tp3780I_EnableDSP: Error: dsp7880I_EnableDSP() failed\n");
                goto exit_cleanup;
-       } else {
-               bDSPEnabled = TRUE;
        }
 
        EnableSRAM(pBDData);
@@ -411,12 +402,10 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
 
 exit_cleanup:
        PRINTK_ERROR("tp3780i::tp3780I_EnableDSP: Cleaning up\n");
-       if (bDSPEnabled)
-               dsp3780I_DisableDSP(pSettings);
        if (bDSPPoweredUp)
                smapi_set_DSP_power_state(FALSE);
        if (bInterruptAllocated) {
-               free_irq(pSettings->usDspIrq, 0);
+               free_irq(pSettings->usDspIrq, NULL);
                pSettings->bInterruptClaimed = FALSE;
        }
        return -EIO;
@@ -433,7 +422,7 @@ int tp3780I_DisableDSP(THINKPAD_BD_DATA * pBDData)
        if (pBDData->bDSPEnabled) {
                dsp3780I_DisableDSP(&pBDData->rDspSettings);
                if (pSettings->bInterruptClaimed) {
-                       free_irq(pSettings->usDspIrq, 0);
+                       free_irq(pSettings->usDspIrq, NULL);
                        pSettings->bInterruptClaimed = FALSE;
                }
                smapi_set_DSP_power_state(FALSE);
@@ -522,7 +511,7 @@ int tp3780I_QueryAbilities(THINKPAD_BD_DATA * pBDData, MW_ABILITIES * pAbilities
 }
 
 int tp3780I_ReadWriteDspDStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
-                               void *pvBuffer, unsigned int uCount,
+                               void __user *pvBuffer, unsigned int uCount,
                                unsigned long ulDSPAddr)
 {
        int retval = 0;
@@ -558,7 +547,7 @@ int tp3780I_ReadWriteDspDStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
 
 
 int tp3780I_ReadWriteDspIStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
-                               void *pvBuffer, unsigned int uCount,
+                               void __user *pvBuffer, unsigned int uCount,
                                unsigned long ulDSPAddr)
 {
        int retval = 0;