mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
char/mwave: remove printk tracing
The printk tracing makes the code hard to follow for no good benefit. Everyone can use dynamic tracing and/or kprobes. Drop this unreadable bloatware too. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20251119091949.825958-5-jirislaby@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
3b4df2320e
commit
53688a9f37
|
|
@ -75,18 +75,12 @@ unsigned short dsp3780I_ReadMsaCfg(unsigned short usDspBaseIO,
|
|||
unsigned long flags;
|
||||
unsigned short val;
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780i::dsp3780I_ReadMsaCfg entry usDspBaseIO %x ulMsaAddr %lx\n",
|
||||
usDspBaseIO, ulMsaAddr);
|
||||
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
OutWordDsp(DSP_MsaAddrLow, (unsigned short) ulMsaAddr);
|
||||
OutWordDsp(DSP_MsaAddrHigh, (unsigned short) (ulMsaAddr >> 16));
|
||||
val = InWordDsp(DSP_MsaDataDSISHigh);
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
|
||||
PRINTK_2(TRACE_3780I, "3780i::dsp3780I_ReadMsaCfg exit val %x\n", val);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
|
|
@ -95,10 +89,6 @@ void dsp3780I_WriteMsaCfg(unsigned short usDspBaseIO,
|
|||
{
|
||||
unsigned long flags;
|
||||
|
||||
PRINTK_4(TRACE_3780I,
|
||||
"3780i::dsp3780i_WriteMsaCfg entry usDspBaseIO %x ulMsaAddr %lx usValue %x\n",
|
||||
usDspBaseIO, ulMsaAddr, usValue);
|
||||
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
OutWordDsp(DSP_MsaAddrLow, (unsigned short) ulMsaAddr);
|
||||
OutWordDsp(DSP_MsaAddrHigh, (unsigned short) (ulMsaAddr >> 16));
|
||||
|
|
@ -112,32 +102,15 @@ static void dsp3780I_WriteGenCfg(unsigned short usDspBaseIO, unsigned uIndex,
|
|||
DSP_ISA_SLAVE_CONTROL rSlaveControl;
|
||||
DSP_ISA_SLAVE_CONTROL rSlaveControl_Save;
|
||||
|
||||
|
||||
PRINTK_4(TRACE_3780I,
|
||||
"3780i::dsp3780i_WriteGenCfg entry usDspBaseIO %x uIndex %x ucValue %x\n",
|
||||
usDspBaseIO, uIndex, ucValue);
|
||||
|
||||
MKBYTE(rSlaveControl) = InByteDsp(DSP_IsaSlaveControl);
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780i_WriteGenCfg rSlaveControl %x\n",
|
||||
MKBYTE(rSlaveControl));
|
||||
|
||||
rSlaveControl_Save = rSlaveControl;
|
||||
rSlaveControl.ConfigMode = true;
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780i_WriteGenCfg entry rSlaveControl+ConfigMode %x\n",
|
||||
MKBYTE(rSlaveControl));
|
||||
|
||||
OutByteDsp(DSP_IsaSlaveControl, MKBYTE(rSlaveControl));
|
||||
OutByteDsp(DSP_ConfigAddress, (unsigned char) uIndex);
|
||||
OutByteDsp(DSP_ConfigData, ucValue);
|
||||
OutByteDsp(DSP_IsaSlaveControl, MKBYTE(rSlaveControl_Save));
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_WriteGenCfg exit\n");
|
||||
|
||||
|
||||
}
|
||||
|
||||
int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
|
||||
|
|
@ -162,25 +135,13 @@ int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
|
|||
DSP_CLOCK_CONTROL_2 rClockControl2;
|
||||
DSP_ISA_SLAVE_CONTROL rSlaveControl;
|
||||
DSP_HBRIDGE_CONTROL rHBridgeControl;
|
||||
unsigned short ChipID = 0;
|
||||
unsigned short tval;
|
||||
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780I_EnableDSP entry pSettings->bDSPEnabled %x\n",
|
||||
pSettings->bDSPEnabled);
|
||||
|
||||
|
||||
if (!pSettings->bDSPEnabled) {
|
||||
PRINTK_ERROR( KERN_ERR "3780i::dsp3780I_EnableDSP: Error: DSP not enabled. Aborting.\n" );
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780i_EnableDSP entry pSettings->bModemEnabled %x\n",
|
||||
pSettings->bModemEnabled);
|
||||
|
||||
if (pSettings->bModemEnabled) {
|
||||
rUartCfg1.Reserved = rUartCfg2.Reserved = 0;
|
||||
rUartCfg1.IrqActiveLow = pSettings->bUartIrqActiveLow;
|
||||
|
|
@ -253,23 +214,10 @@ int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
|
|||
rSlaveControl.ConfigMode = false;
|
||||
rSlaveControl.Reserved = 0;
|
||||
|
||||
PRINTK_4(TRACE_3780I,
|
||||
"3780i::dsp3780i_EnableDSP usDspBaseIO %x index %x taddr %x\n",
|
||||
usDspBaseIO, DSP_IsaSlaveControl,
|
||||
usDspBaseIO + DSP_IsaSlaveControl);
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780i_EnableDSP rSlaveContrl %x\n",
|
||||
MKWORD(rSlaveControl));
|
||||
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
OutWordDsp(DSP_IsaSlaveControl, MKWORD(rSlaveControl));
|
||||
MKWORD(tval) = InWordDsp(DSP_IsaSlaveControl);
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780i_EnableDSP rSlaveControl 2 %x\n", tval);
|
||||
|
||||
|
||||
for (i = 0; i < 11; i++)
|
||||
udelay(2000);
|
||||
|
||||
|
|
@ -278,10 +226,6 @@ int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
|
|||
|
||||
MKWORD(tval) = InWordDsp(DSP_IsaSlaveControl);
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780i_EnableDSP rSlaveControl 3 %x\n", tval);
|
||||
|
||||
|
||||
/* Program our general configuration registers */
|
||||
WriteGenCfg(DSP_HBridgeCfg1Index, MKBYTE(rHBridgeCfg1));
|
||||
WriteGenCfg(DSP_HBridgeCfg2Index, MKBYTE(rHBridgeCfg2));
|
||||
|
|
@ -302,10 +246,6 @@ int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
|
|||
rHBridgeControl.IoAutoInc = false;
|
||||
rHBridgeControl.DiagnosticMode = false;
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780i::dsp3780i_EnableDSP DSP_HBridgeControl %x rHBridgeControl %x\n",
|
||||
DSP_HBridgeControl, MKWORD(rHBridgeControl));
|
||||
|
||||
OutWordDsp(DSP_HBridgeControl, MKWORD(rHBridgeControl));
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
WriteMsaCfg(DSP_LBusTimeoutDisable, MKWORD(rLBusTimeoutDisable));
|
||||
|
|
@ -313,11 +253,7 @@ int dsp3780I_EnableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings,
|
|||
WriteMsaCfg(DSP_ClockControl_2, MKWORD(rClockControl2));
|
||||
WriteMsaCfg(DSP_ChipReset, MKWORD(rChipReset));
|
||||
|
||||
ChipID = ReadMsaCfg(DSP_ChipID);
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780I_EnableDSP exiting bRC=true, ChipID %x\n",
|
||||
ChipID);
|
||||
ReadMsaCfg(DSP_ChipID);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -328,9 +264,6 @@ int dsp3780I_DisableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
unsigned short usDspBaseIO = pSettings->usDspBaseIO;
|
||||
DSP_ISA_SLAVE_CONTROL rSlaveControl;
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_DisableDSP entry\n");
|
||||
|
||||
rSlaveControl.ClockControl = 0;
|
||||
rSlaveControl.SoftReset = true;
|
||||
rSlaveControl.ConfigMode = false;
|
||||
|
|
@ -346,9 +279,6 @@ int dsp3780I_DisableDSP(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
|
||||
udelay(5);
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_DisableDSP exit\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -359,16 +289,10 @@ int dsp3780I_Reset(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
DSP_BOOT_DOMAIN rBootDomain;
|
||||
DSP_HBRIDGE_CONTROL rHBridgeControl;
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_Reset entry\n");
|
||||
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
/* Mask DSP to PC interrupt */
|
||||
MKWORD(rHBridgeControl) = InWordDsp(DSP_HBridgeControl);
|
||||
|
||||
PRINTK_2(TRACE_3780I, "3780i::dsp3780i_Reset rHBridgeControl %x\n",
|
||||
MKWORD(rHBridgeControl));
|
||||
|
||||
rHBridgeControl.EnableDspInt = false;
|
||||
OutWordDsp(DSP_HBridgeControl, MKWORD(rHBridgeControl));
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
|
|
@ -379,9 +303,6 @@ int dsp3780I_Reset(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
rBootDomain.NMI = true;
|
||||
rBootDomain.Reserved = 0;
|
||||
|
||||
PRINTK_2(TRACE_3780I, "3780i::dsp3780i_Reset rBootDomain %x\n",
|
||||
MKWORD(rBootDomain));
|
||||
|
||||
WriteMsaCfg(DSP_MspBootDomain, MKWORD(rBootDomain));
|
||||
|
||||
/* Reset all the chiplets and then reactivate them */
|
||||
|
|
@ -390,9 +311,6 @@ int dsp3780I_Reset(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
WriteMsaCfg(DSP_ChipReset,
|
||||
(unsigned short) (~pSettings->usChipletEnable));
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_Reset exit bRC=0\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -404,10 +322,6 @@ int dsp3780I_Run(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
DSP_BOOT_DOMAIN rBootDomain;
|
||||
DSP_HBRIDGE_CONTROL rHBridgeControl;
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_Run entry\n");
|
||||
|
||||
|
||||
/* Transition the core to a running state */
|
||||
rBootDomain.ResetCore = true;
|
||||
rBootDomain.Halt = false;
|
||||
|
|
@ -430,15 +344,9 @@ int dsp3780I_Run(DSP_3780I_CONFIG_SETTINGS * pSettings)
|
|||
MKWORD(rHBridgeControl) = InWordDsp(DSP_HBridgeControl);
|
||||
rHBridgeControl.EnableDspInt = true;
|
||||
|
||||
PRINTK_2(TRACE_3780I, "3780i::dsp3780i_Run rHBridgeControl %x\n",
|
||||
MKWORD(rHBridgeControl));
|
||||
|
||||
OutWordDsp(DSP_HBridgeControl, MKWORD(rHBridgeControl));
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I, "3780i::dsp3780i_Run exit bRC=true\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -450,12 +358,6 @@ int dsp3780I_ReadDStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
unsigned short __user *pusBuffer = pvBuffer;
|
||||
unsigned short val;
|
||||
|
||||
|
||||
PRINTK_5(TRACE_3780I,
|
||||
"3780i::dsp3780I_ReadDStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
usDspBaseIO, pusBuffer, uCount, ulDSPAddr);
|
||||
|
||||
|
||||
/* Set the initial MSA address. No adjustments need to be made to data store addresses */
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
OutWordDsp(DSP_MsaAddrLow, (unsigned short) ulDSPAddr);
|
||||
|
|
@ -470,17 +372,9 @@ int dsp3780I_ReadDStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
if(put_user(val, pusBuffer++))
|
||||
return -EFAULT;
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780I::dsp3780I_ReadDStore uCount %x val %x\n",
|
||||
uCount, val);
|
||||
|
||||
PaceMsaAccess(usDspBaseIO);
|
||||
}
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I,
|
||||
"3780I::dsp3780I_ReadDStore exit bRC=true\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -492,12 +386,6 @@ int dsp3780I_ReadAndClearDStore(unsigned short usDspBaseIO,
|
|||
unsigned short __user *pusBuffer = pvBuffer;
|
||||
unsigned short val;
|
||||
|
||||
|
||||
PRINTK_5(TRACE_3780I,
|
||||
"3780i::dsp3780I_ReadAndDStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
usDspBaseIO, pusBuffer, uCount, ulDSPAddr);
|
||||
|
||||
|
||||
/* Set the initial MSA address. No adjustments need to be made to data store addresses */
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
OutWordDsp(DSP_MsaAddrLow, (unsigned short) ulDSPAddr);
|
||||
|
|
@ -512,17 +400,9 @@ int dsp3780I_ReadAndClearDStore(unsigned short usDspBaseIO,
|
|||
if(put_user(val, pusBuffer++))
|
||||
return -EFAULT;
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780I::dsp3780I_ReadAndCleanDStore uCount %x val %x\n",
|
||||
uCount, val);
|
||||
|
||||
PaceMsaAccess(usDspBaseIO);
|
||||
}
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I,
|
||||
"3780I::dsp3780I_ReadAndClearDStore exit bRC=true\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -533,12 +413,6 @@ int dsp3780I_WriteDStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
unsigned long flags;
|
||||
unsigned short __user *pusBuffer = pvBuffer;
|
||||
|
||||
|
||||
PRINTK_5(TRACE_3780I,
|
||||
"3780i::dsp3780D_WriteDStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
usDspBaseIO, pusBuffer, uCount, ulDSPAddr);
|
||||
|
||||
|
||||
/* Set the initial MSA address. No adjustments need to be made to data store addresses */
|
||||
spin_lock_irqsave(&dsp_lock, flags);
|
||||
OutWordDsp(DSP_MsaAddrLow, (unsigned short) ulDSPAddr);
|
||||
|
|
@ -554,17 +428,9 @@ int dsp3780I_WriteDStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
OutWordDsp(DSP_MsaDataDSISHigh, val);
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780I::dsp3780I_WriteDStore uCount %x val %x\n",
|
||||
uCount, val);
|
||||
|
||||
PaceMsaAccess(usDspBaseIO);
|
||||
}
|
||||
|
||||
|
||||
PRINTK_1(TRACE_3780I,
|
||||
"3780I::dsp3780D_WriteDStore exit bRC=true\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -575,10 +441,6 @@ int dsp3780I_ReadIStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
unsigned long flags;
|
||||
unsigned short __user *pusBuffer = pvBuffer;
|
||||
|
||||
PRINTK_5(TRACE_3780I,
|
||||
"3780i::dsp3780I_ReadIStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
usDspBaseIO, pusBuffer, uCount, ulDSPAddr);
|
||||
|
||||
/*
|
||||
* Set the initial MSA address. To convert from an instruction store
|
||||
* address to an MSA address
|
||||
|
|
@ -602,17 +464,10 @@ int dsp3780I_ReadIStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
if(put_user(val_hi, pusBuffer++))
|
||||
return -EFAULT;
|
||||
|
||||
PRINTK_4(TRACE_3780I,
|
||||
"3780I::dsp3780I_ReadIStore uCount %x val_lo %x val_hi %x\n",
|
||||
uCount, val_lo, val_hi);
|
||||
|
||||
PaceMsaAccess(usDspBaseIO);
|
||||
|
||||
}
|
||||
|
||||
PRINTK_1(TRACE_3780I,
|
||||
"3780I::dsp3780I_ReadIStore exit bRC=true\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -623,11 +478,6 @@ int dsp3780I_WriteIStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
unsigned long flags;
|
||||
unsigned short __user *pusBuffer = pvBuffer;
|
||||
|
||||
PRINTK_5(TRACE_3780I,
|
||||
"3780i::dsp3780I_WriteIStore entry usDspBaseIO %x, pusBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
usDspBaseIO, pusBuffer, uCount, ulDSPAddr);
|
||||
|
||||
|
||||
/*
|
||||
* Set the initial MSA address. To convert from an instruction store
|
||||
* address to an MSA address
|
||||
|
|
@ -651,17 +501,9 @@ int dsp3780I_WriteIStore(unsigned short usDspBaseIO, void __user *pvBuffer,
|
|||
OutWordDsp(DSP_MsaDataDSISHigh, val_hi);
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
|
||||
PRINTK_4(TRACE_3780I,
|
||||
"3780I::dsp3780I_WriteIStore uCount %x val_lo %x val_hi %x\n",
|
||||
uCount, val_lo, val_hi);
|
||||
|
||||
PaceMsaAccess(usDspBaseIO);
|
||||
|
||||
}
|
||||
|
||||
PRINTK_1(TRACE_3780I,
|
||||
"3780I::dsp3780I_WriteIStore exit bRC=true\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -671,12 +513,6 @@ int dsp3780I_GetIPCSource(unsigned short usDspBaseIO,
|
|||
{
|
||||
unsigned long flags;
|
||||
DSP_HBRIDGE_CONTROL rHBridgeControl;
|
||||
unsigned short temp;
|
||||
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780i::dsp3780I_GetIPCSource entry usDspBaseIO %x pusIPCSource %p\n",
|
||||
usDspBaseIO, pusIPCSource);
|
||||
|
||||
/*
|
||||
* Disable DSP to PC interrupts, read the interrupt register,
|
||||
|
|
@ -688,22 +524,11 @@ int dsp3780I_GetIPCSource(unsigned short usDspBaseIO,
|
|||
OutWordDsp(DSP_HBridgeControl, MKWORD(rHBridgeControl));
|
||||
|
||||
*pusIPCSource = InWordDsp(DSP_Interrupt);
|
||||
temp = (unsigned short) ~(*pusIPCSource);
|
||||
|
||||
PRINTK_3(TRACE_3780I,
|
||||
"3780i::dsp3780I_GetIPCSource, usIPCSource %x ~ %x\n",
|
||||
*pusIPCSource, temp);
|
||||
|
||||
OutWordDsp(DSP_Interrupt, (unsigned short) ~(*pusIPCSource));
|
||||
|
||||
rHBridgeControl.EnableDspInt = true;
|
||||
OutWordDsp(DSP_HBridgeControl, MKWORD(rHBridgeControl));
|
||||
spin_unlock_irqrestore(&dsp_lock, flags);
|
||||
|
||||
|
||||
PRINTK_2(TRACE_3780I,
|
||||
"3780i::dsp3780I_GetIPCSource exit usIPCSource %x\n",
|
||||
*pusIPCSource);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,3 @@
|
|||
obj-$(CONFIG_MWAVE) += mwave.o
|
||||
|
||||
mwave-y := mwavedd.o smapi.o tp3780i.o 3780i.o
|
||||
|
||||
# To compile in lots (~20 KiB) of run-time enablable printk()s for debugging:
|
||||
ccflags-y += -DMW_TRACE
|
||||
|
|
|
|||
|
|
@ -4,16 +4,6 @@ Module options
|
|||
The mwave module takes the following options. Note that these options
|
||||
are not saved by the BIOS and so do not persist after unload and reload.
|
||||
|
||||
mwave_debug=value, where value is bitwise OR of trace flags:
|
||||
0x0001 mwavedd api tracing
|
||||
0x0002 smapi api tracing
|
||||
0x0004 3780i tracing
|
||||
0x0008 tp3780i tracing
|
||||
|
||||
Tracing only occurs if the driver has been compiled with the
|
||||
MW_TRACE macro #defined (i.e. let ccflags-y := -DMW_TRACE
|
||||
in the Makefile).
|
||||
|
||||
mwave_3780i_irq=5/7/10/11/15
|
||||
If the dsp irq has not been setup and stored in bios by the
|
||||
thinkpad configuration utility then this parameter allows the
|
||||
|
|
|
|||
|
|
@ -75,12 +75,10 @@ MODULE_LICENSE("GPL");
|
|||
* We'll depend on users using the tpctl utility to do that for now
|
||||
*/
|
||||
static DEFINE_MUTEX(mwave_mutex);
|
||||
int mwave_debug = 0;
|
||||
int mwave_3780i_irq = 0;
|
||||
int mwave_3780i_io = 0;
|
||||
int mwave_uart_irq = 0;
|
||||
int mwave_uart_io = 0;
|
||||
module_param(mwave_debug, int, 0);
|
||||
module_param_hw(mwave_3780i_irq, int, irq, 0);
|
||||
module_param_hw(mwave_3780i_io, int, ioport, 0);
|
||||
module_param_hw(mwave_uart_irq, int, irq, 0);
|
||||
|
|
@ -95,62 +93,32 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd;
|
||||
void __user *arg = (void __user *)ioarg;
|
||||
|
||||
PRINTK_4(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, entry file %p cmd %x arg %x\n",
|
||||
file, iocmd, (int) ioarg);
|
||||
|
||||
switch (iocmd) {
|
||||
|
||||
case IOCTL_MW_RESET:
|
||||
PRINTK_1(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, IOCTL_MW_RESET"
|
||||
" calling tp3780I_ResetDSP\n");
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_ResetDSP(&pDrvData->rBDData);
|
||||
mutex_unlock(&mwave_mutex);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, IOCTL_MW_RESET"
|
||||
" retval %x from tp3780I_ResetDSP\n",
|
||||
retval);
|
||||
break;
|
||||
|
||||
case IOCTL_MW_RUN:
|
||||
PRINTK_1(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, IOCTL_MW_RUN"
|
||||
" calling tp3780I_StartDSP\n");
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_StartDSP(&pDrvData->rBDData);
|
||||
mutex_unlock(&mwave_mutex);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, IOCTL_MW_RUN"
|
||||
" retval %x from tp3780I_StartDSP\n",
|
||||
retval);
|
||||
break;
|
||||
|
||||
case IOCTL_MW_DSP_ABILITIES: {
|
||||
MW_ABILITIES rAbilities;
|
||||
|
||||
PRINTK_1(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl,"
|
||||
" IOCTL_MW_DSP_ABILITIES calling"
|
||||
" tp3780I_QueryAbilities\n");
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_QueryAbilities(&pDrvData->rBDData,
|
||||
&rAbilities);
|
||||
mutex_unlock(&mwave_mutex);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, IOCTL_MW_DSP_ABILITIES"
|
||||
" retval %x from tp3780I_QueryAbilities\n",
|
||||
retval);
|
||||
if (retval == 0) {
|
||||
if( copy_to_user(arg, &rAbilities,
|
||||
sizeof(MW_ABILITIES)) )
|
||||
return -EFAULT;
|
||||
}
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, IOCTL_MW_DSP_ABILITIES"
|
||||
" exit retval %x\n",
|
||||
retval);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -164,10 +132,6 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
return -EFAULT;
|
||||
pusBuffer = (unsigned short __user *) (rReadData.pBuf);
|
||||
|
||||
PRINTK_4(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_READ_DATA,"
|
||||
" size %lx, ioarg %lx pusBuffer %p\n",
|
||||
rReadData.ulDataLength, ioarg, pusBuffer);
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_ReadWriteDspDStore(&pDrvData->rBDData,
|
||||
iocmd,
|
||||
|
|
@ -187,11 +151,6 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
return -EFAULT;
|
||||
pusBuffer = (unsigned short __user *) (rReadData.pBuf);
|
||||
|
||||
PRINTK_4(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_READ_INST,"
|
||||
" size %lx, ioarg %lx pusBuffer %p\n",
|
||||
rReadData.ulDataLength / 2, ioarg,
|
||||
pusBuffer);
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_ReadWriteDspDStore(&pDrvData->rBDData,
|
||||
iocmd, pusBuffer,
|
||||
|
|
@ -210,11 +169,6 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
return -EFAULT;
|
||||
pusBuffer = (unsigned short __user *) (rWriteData.pBuf);
|
||||
|
||||
PRINTK_4(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_WRITE_DATA,"
|
||||
" size %lx, ioarg %lx pusBuffer %p\n",
|
||||
rWriteData.ulDataLength, ioarg,
|
||||
pusBuffer);
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_ReadWriteDspDStore(&pDrvData->rBDData,
|
||||
iocmd, pusBuffer,
|
||||
|
|
@ -233,11 +187,6 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
return -EFAULT;
|
||||
pusBuffer = (unsigned short __user *)(rWriteData.pBuf);
|
||||
|
||||
PRINTK_4(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_WRITE_INST,"
|
||||
" size %lx, ioarg %lx pusBuffer %p\n",
|
||||
rWriteData.ulDataLength, ioarg,
|
||||
pusBuffer);
|
||||
mutex_lock(&mwave_mutex);
|
||||
retval = tp3780I_ReadWriteDspIStore(&pDrvData->rBDData,
|
||||
iocmd, pusBuffer,
|
||||
|
|
@ -260,21 +209,11 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
}
|
||||
ipcnum = array_index_nospec(ipcnum,
|
||||
ARRAY_SIZE(pDrvData->IPCs));
|
||||
PRINTK_3(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_REGISTER_IPC"
|
||||
" ipcnum %x entry usIntCount %x\n",
|
||||
ipcnum,
|
||||
pDrvData->IPCs[ipcnum].usIntCount);
|
||||
|
||||
mutex_lock(&mwave_mutex);
|
||||
pDrvData->IPCs[ipcnum].bIsHere = false;
|
||||
pDrvData->IPCs[ipcnum].bIsEnabled = true;
|
||||
mutex_unlock(&mwave_mutex);
|
||||
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_REGISTER_IPC"
|
||||
" ipcnum %x exit\n",
|
||||
ipcnum);
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
@ -290,20 +229,11 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
}
|
||||
ipcnum = array_index_nospec(ipcnum,
|
||||
ARRAY_SIZE(pDrvData->IPCs));
|
||||
PRINTK_3(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_GET_IPC"
|
||||
" ipcnum %x, usIntCount %x\n",
|
||||
ipcnum,
|
||||
pDrvData->IPCs[ipcnum].usIntCount);
|
||||
|
||||
|
||||
mutex_lock(&mwave_mutex);
|
||||
if (pDrvData->IPCs[ipcnum].bIsEnabled == true) {
|
||||
DECLARE_WAITQUEUE(wait, current);
|
||||
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl, thread for"
|
||||
" ipc %x going to sleep\n",
|
||||
ipcnum);
|
||||
add_wait_queue(&pDrvData->IPCs[ipcnum].ipc_wait_queue, &wait);
|
||||
pDrvData->IPCs[ipcnum].bIsHere = true;
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
|
|
@ -311,31 +241,15 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
/* the interrupt handler while we were gone */
|
||||
if (pDrvData->IPCs[ipcnum].usIntCount == 1) { /* first int has occurred (race condition) */
|
||||
pDrvData->IPCs[ipcnum].usIntCount = 2; /* first int has been handled */
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl"
|
||||
" IOCTL_MW_GET_IPC ipcnum %x"
|
||||
" handling first int\n",
|
||||
ipcnum);
|
||||
} else { /* either 1st int has not yet occurred, or we have already handled the first int */
|
||||
schedule();
|
||||
if (pDrvData->IPCs[ipcnum].usIntCount == 1) {
|
||||
pDrvData->IPCs[ipcnum].usIntCount = 2;
|
||||
}
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl"
|
||||
" IOCTL_MW_GET_IPC ipcnum %x"
|
||||
" woke up and returning to"
|
||||
" application\n",
|
||||
ipcnum);
|
||||
}
|
||||
pDrvData->IPCs[ipcnum].bIsHere = false;
|
||||
remove_wait_queue(&pDrvData->IPCs[ipcnum].ipc_wait_queue, &wait);
|
||||
set_current_state(TASK_RUNNING);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_GET_IPC,"
|
||||
" returning thread for ipc %x"
|
||||
" processing\n",
|
||||
ipcnum);
|
||||
}
|
||||
mutex_unlock(&mwave_mutex);
|
||||
}
|
||||
|
|
@ -344,10 +258,6 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
case IOCTL_MW_UNREGISTER_IPC: {
|
||||
unsigned int ipcnum = (unsigned int) ioarg;
|
||||
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_ioctl IOCTL_MW_UNREGISTER_IPC"
|
||||
" ipcnum %x\n",
|
||||
ipcnum);
|
||||
if (ipcnum >= ARRAY_SIZE(pDrvData->IPCs)) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE
|
||||
"mwavedd::mwave_ioctl:"
|
||||
|
|
@ -373,8 +283,6 @@ static long mwave_ioctl(struct file *file, unsigned int iocmd,
|
|||
return -ENOTTY;
|
||||
} /* switch */
|
||||
|
||||
PRINTK_2(TRACE_MWAVE, "mwavedd::mwave_ioctl, exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
@ -440,8 +348,6 @@ static void mwave_exit(void)
|
|||
{
|
||||
pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd;
|
||||
|
||||
PRINTK_1(TRACE_MWAVE, "mwavedd::mwave_exit entry\n");
|
||||
|
||||
if ( pDrvData->sLine >= 0 ) {
|
||||
serial8250_unregister_port(pDrvData->sLine);
|
||||
}
|
||||
|
|
@ -457,8 +363,6 @@ static void mwave_exit(void)
|
|||
if (pDrvData->bBDInitialized) {
|
||||
tp3780I_Cleanup(&pDrvData->rBDData);
|
||||
}
|
||||
|
||||
PRINTK_1(TRACE_MWAVE, "mwavedd::mwave_exit exit\n");
|
||||
}
|
||||
|
||||
module_exit(mwave_exit);
|
||||
|
|
@ -469,8 +373,6 @@ static int __init mwave_init(void)
|
|||
int retval = 0;
|
||||
pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd;
|
||||
|
||||
PRINTK_1(TRACE_MWAVE, "mwavedd::mwave_init entry\n");
|
||||
|
||||
memset(&mwave_s_mdd, 0, sizeof(MWAVE_DEVICE_DATA));
|
||||
|
||||
pDrvData->bBDInitialized = false;
|
||||
|
|
@ -488,10 +390,6 @@ static int __init mwave_init(void)
|
|||
}
|
||||
|
||||
retval = tp3780I_InitializeBoardData(&pDrvData->rBDData);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_init, return from tp3780I_InitializeBoardData"
|
||||
" retval %x\n",
|
||||
retval);
|
||||
if (retval) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE
|
||||
"mwavedd::mwave_init: Error:"
|
||||
|
|
@ -501,10 +399,6 @@ static int __init mwave_init(void)
|
|||
pDrvData->bBDInitialized = true;
|
||||
|
||||
retval = tp3780I_CalcResources(&pDrvData->rBDData);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_init, return from tp3780I_CalcResources"
|
||||
" retval %x\n",
|
||||
retval);
|
||||
if (retval) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE
|
||||
"mwavedd:mwave_init: Error:"
|
||||
|
|
@ -513,10 +407,6 @@ static int __init mwave_init(void)
|
|||
}
|
||||
|
||||
retval = tp3780I_ClaimResources(&pDrvData->rBDData);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_init, return from tp3780I_ClaimResources"
|
||||
" retval %x\n",
|
||||
retval);
|
||||
if (retval) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE
|
||||
"mwavedd:mwave_init: Error:"
|
||||
|
|
@ -526,10 +416,6 @@ static int __init mwave_init(void)
|
|||
pDrvData->bResourcesClaimed = true;
|
||||
|
||||
retval = tp3780I_EnableDSP(&pDrvData->rBDData);
|
||||
PRINTK_2(TRACE_MWAVE,
|
||||
"mwavedd::mwave_init, return from tp3780I_EnableDSP"
|
||||
" retval %x\n",
|
||||
retval);
|
||||
if (retval) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE
|
||||
"mwavedd:mwave_init: Error:"
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@
|
|||
#include <linux/uaccess.h>
|
||||
#include <linux/wait.h>
|
||||
|
||||
extern int mwave_debug;
|
||||
extern int mwave_3780i_irq;
|
||||
extern int mwave_3780i_io;
|
||||
extern int mwave_uart_irq;
|
||||
|
|
@ -65,64 +64,6 @@ extern int mwave_uart_io;
|
|||
#define PRINTK_ERROR printk
|
||||
#define KERN_ERR_MWAVE KERN_ERR "mwave: "
|
||||
|
||||
#define TRACE_MWAVE 0x0001
|
||||
#define TRACE_SMAPI 0x0002
|
||||
#define TRACE_3780I 0x0004
|
||||
#define TRACE_TP3780I 0x0008
|
||||
|
||||
#ifdef MW_TRACE
|
||||
#define PRINTK_1(f,s) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s); \
|
||||
}
|
||||
|
||||
#define PRINTK_2(f,s,v1) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1); \
|
||||
}
|
||||
|
||||
#define PRINTK_3(f,s,v1,v2) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1,v2); \
|
||||
}
|
||||
|
||||
#define PRINTK_4(f,s,v1,v2,v3) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1,v2,v3); \
|
||||
}
|
||||
|
||||
#define PRINTK_5(f,s,v1,v2,v3,v4) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1,v2,v3,v4); \
|
||||
}
|
||||
|
||||
#define PRINTK_6(f,s,v1,v2,v3,v4,v5) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1,v2,v3,v4,v5); \
|
||||
}
|
||||
|
||||
#define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1,v2,v3,v4,v5,v6); \
|
||||
}
|
||||
|
||||
#define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7) \
|
||||
if (f & (mwave_debug)) { \
|
||||
printk(s,v1,v2,v3,v4,v5,v6,v7); \
|
||||
}
|
||||
|
||||
#else
|
||||
#define PRINTK_1(f,s)
|
||||
#define PRINTK_2(f,s,v1)
|
||||
#define PRINTK_3(f,s,v1,v2)
|
||||
#define PRINTK_4(f,s,v1,v2,v3)
|
||||
#define PRINTK_5(f,s,v1,v2,v3,v4)
|
||||
#define PRINTK_6(f,s,v1,v2,v3,v4,v5)
|
||||
#define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6)
|
||||
#define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7)
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct _MWAVE_IPC {
|
||||
unsigned short usIntCount; /* 0=none, 1=first, 2=greater than 1st */
|
||||
bool bIsEnabled;
|
||||
|
|
|
|||
|
|
@ -69,10 +69,6 @@ static int smapi_request(unsigned short inBX, unsigned short inCX,
|
|||
unsigned short usSmapiOK = -EIO, *pusSmapiOK = &usSmapiOK;
|
||||
unsigned int inBXCX = (inBX << 16) | inCX;
|
||||
unsigned int inDISI = (inDI << 16) | inSI;
|
||||
int retval = 0;
|
||||
|
||||
PRINTK_5(TRACE_SMAPI, "inBX %x inCX %x inDI %x inSI %x\n",
|
||||
inBX, inCX, inDI, inSI);
|
||||
|
||||
__asm__ __volatile__("movw $0x5380,%%ax\n\t"
|
||||
"movl %7,%%ebx\n\t"
|
||||
|
|
@ -107,10 +103,6 @@ static int smapi_request(unsigned short inBX, unsigned short inCX,
|
|||
:"%eax", "%ebx", "%ecx", "%edx", "%edi",
|
||||
"%esi");
|
||||
|
||||
PRINTK_8(TRACE_SMAPI,
|
||||
"myoutAX %x myoutBX %x myoutCX %x myoutDX %x myoutDI %x myoutSI %x usSmapiOK %x\n",
|
||||
myoutAX, myoutBX, myoutCX, myoutDX, myoutDI, myoutSI,
|
||||
usSmapiOK);
|
||||
*outAX = myoutAX;
|
||||
*outBX = myoutBX;
|
||||
*outCX = myoutCX;
|
||||
|
|
@ -118,9 +110,7 @@ static int smapi_request(unsigned short inBX, unsigned short inCX,
|
|||
*outDI = myoutDI;
|
||||
*outSI = myoutSI;
|
||||
|
||||
retval = (usSmapiOK == 1) ? 0 : -EIO;
|
||||
PRINTK_2(TRACE_SMAPI, "smapi::smapi_request exit retval %x\n", retval);
|
||||
return retval;
|
||||
return usSmapiOK == 1 ? 0 : -EIO;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -134,8 +124,6 @@ int smapi_query_DSP_cfg(SMAPI_DSP_SETTINGS * pSettings)
|
|||
static const unsigned short ausUartBases[] = {
|
||||
0x03F8, 0x02F8, 0x03E8, 0x02E8 };
|
||||
|
||||
PRINTK_1(TRACE_SMAPI, "smapi::smapi_query_DSP_cfg entry\n");
|
||||
|
||||
bRC = smapi_request(0x1802, 0x0000, 0, 0,
|
||||
&usAX, &usBX, &usCX, &usDX, &usDI, &usSI);
|
||||
if (bRC) {
|
||||
|
|
@ -143,8 +131,6 @@ int smapi_query_DSP_cfg(SMAPI_DSP_SETTINGS * pSettings)
|
|||
return bRC;
|
||||
}
|
||||
|
||||
PRINTK_1(TRACE_SMAPI, "smapi::smapi_query_DSP_cfg, smapi_request OK\n");
|
||||
|
||||
pSettings->bDSPPresent = ((usBX & 0x0100) != 0);
|
||||
pSettings->bDSPEnabled = ((usCX & 0x0001) != 0);
|
||||
pSettings->usDspIRQ = usSI & 0x00FF;
|
||||
|
|
@ -154,11 +140,6 @@ int smapi_query_DSP_cfg(SMAPI_DSP_SETTINGS * pSettings)
|
|||
} else {
|
||||
pSettings->usDspBaseIO = 0;
|
||||
}
|
||||
PRINTK_6(TRACE_SMAPI,
|
||||
"smapi::smapi_query_DSP_cfg get DSP Settings bDSPPresent %x bDSPEnabled %x usDspIRQ %x usDspDMA %x usDspBaseIO %x\n",
|
||||
pSettings->bDSPPresent, pSettings->bDSPEnabled,
|
||||
pSettings->usDspIRQ, pSettings->usDspDMA,
|
||||
pSettings->usDspBaseIO);
|
||||
|
||||
/* check for illegal values */
|
||||
if ( pSettings->usDspBaseIO == 0 )
|
||||
|
|
@ -173,8 +154,6 @@ int smapi_query_DSP_cfg(SMAPI_DSP_SETTINGS * pSettings)
|
|||
return bRC;
|
||||
}
|
||||
|
||||
PRINTK_1(TRACE_SMAPI, "smapi::smapi_query_DSP_cfg, smapi_request OK\n");
|
||||
|
||||
pSettings->bModemEnabled = ((usCX & 0x0001) != 0);
|
||||
pSettings->usUartIRQ = usSI & 0x000F;
|
||||
if (((usSI & 0xFF00) >> 8) < ARRAY_SIZE(ausUartBases)) {
|
||||
|
|
@ -183,20 +162,12 @@ int smapi_query_DSP_cfg(SMAPI_DSP_SETTINGS * pSettings)
|
|||
pSettings->usUartBaseIO = 0;
|
||||
}
|
||||
|
||||
PRINTK_4(TRACE_SMAPI,
|
||||
"smapi::smapi_query_DSP_cfg get DSP modem settings bModemEnabled %x usUartIRQ %x usUartBaseIO %x\n",
|
||||
pSettings->bModemEnabled,
|
||||
pSettings->usUartIRQ,
|
||||
pSettings->usUartBaseIO);
|
||||
|
||||
/* check for illegal values */
|
||||
if ( pSettings->usUartBaseIO == 0 )
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE "smapi::smapi_query_DSP_cfg: Worry: UART base I/O address is 0\n");
|
||||
if ( pSettings->usUartIRQ == 0 )
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE "smapi::smapi_query_DSP_cfg: Worry: UART IRQ line is 0\n");
|
||||
|
||||
PRINTK_2(TRACE_SMAPI, "smapi::smapi_query_DSP_cfg exit bRC %x\n", bRC);
|
||||
|
||||
return bRC;
|
||||
}
|
||||
|
||||
|
|
@ -218,10 +189,6 @@ int smapi_set_DSP_cfg(void)
|
|||
|
||||
unsigned short dspio_index = 0, uartio_index = 0;
|
||||
|
||||
PRINTK_5(TRACE_SMAPI,
|
||||
"smapi::smapi_set_DSP_cfg entry mwave_3780i_irq %x mwave_3780i_io %x mwave_uart_irq %x mwave_uart_io %x\n",
|
||||
mwave_3780i_irq, mwave_3780i_io, mwave_uart_irq, mwave_uart_io);
|
||||
|
||||
if (mwave_3780i_io) {
|
||||
for (i = 0; i < ARRAY_SIZE(ausDspBases); i++) {
|
||||
if (mwave_3780i_io == ausDspBases[i])
|
||||
|
|
@ -374,7 +341,6 @@ int smapi_set_DSP_cfg(void)
|
|||
if (bRC) goto exit_smapi_request_error;
|
||||
|
||||
/* normal exit: */
|
||||
PRINTK_1(TRACE_SMAPI, "smapi::smapi_set_DSP_cfg exit\n");
|
||||
return 0;
|
||||
|
||||
exit_conflict:
|
||||
|
|
@ -389,20 +355,13 @@ int smapi_set_DSP_cfg(void)
|
|||
|
||||
int smapi_set_DSP_power_state(bool bOn)
|
||||
{
|
||||
int bRC;
|
||||
unsigned short usAX, usBX, usCX, usDX, usDI, usSI;
|
||||
unsigned short usPowerFunction;
|
||||
|
||||
PRINTK_2(TRACE_SMAPI, "smapi::smapi_set_DSP_power_state entry bOn %x\n", bOn);
|
||||
|
||||
usPowerFunction = (bOn) ? 1 : 0;
|
||||
|
||||
bRC = smapi_request(0x4901, 0x0000, 0, usPowerFunction,
|
||||
&usAX, &usBX, &usCX, &usDX, &usDI, &usSI);
|
||||
|
||||
PRINTK_2(TRACE_SMAPI, "smapi::smapi_set_DSP_power_state exit bRC %x\n", bRC);
|
||||
|
||||
return bRC;
|
||||
return smapi_request(0x4901, 0x0000, 0, usPowerFunction, &usAX, &usBX, &usCX, &usDX, &usDI,
|
||||
&usSI);
|
||||
}
|
||||
|
||||
int smapi_init(void)
|
||||
|
|
@ -411,13 +370,10 @@ int smapi_init(void)
|
|||
unsigned short usSmapiID = 0;
|
||||
unsigned long flags;
|
||||
|
||||
PRINTK_1(TRACE_SMAPI, "smapi::smapi_init entry\n");
|
||||
|
||||
spin_lock_irqsave(&rtc_lock, flags);
|
||||
usSmapiID = CMOS_READ(0x7C);
|
||||
usSmapiID |= (CMOS_READ(0x7D) << 8);
|
||||
spin_unlock_irqrestore(&rtc_lock, flags);
|
||||
PRINTK_2(TRACE_SMAPI, "smapi::smapi_init usSmapiID %x\n", usSmapiID);
|
||||
|
||||
if (usSmapiID == 0x5349) {
|
||||
spin_lock_irqsave(&rtc_lock, flags);
|
||||
|
|
@ -427,9 +383,6 @@ int smapi_init(void)
|
|||
if (g_usSmapiPort == 0) {
|
||||
PRINTK_ERROR("smapi::smapi_init, ERROR unable to read from SMAPI port\n");
|
||||
} else {
|
||||
PRINTK_2(TRACE_SMAPI,
|
||||
"smapi::smapi_init, exit true g_usSmapiPort %x\n",
|
||||
g_usSmapiPort);
|
||||
retval = 0;
|
||||
//SmapiQuerySystemID();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,8 +73,6 @@ static void EnableSRAM(THINKPAD_BD_DATA * pBDData)
|
|||
DSP_GPIO_DRIVER_ENABLE_15_8 rGpioDriverEnable;
|
||||
DSP_GPIO_MODE_15_8 rGpioMode;
|
||||
|
||||
PRINTK_1(TRACE_TP3780I, "tp3780i::EnableSRAM, entry\n");
|
||||
|
||||
MKWORD(rGpioMode) = ReadMsaCfg(DSP_GpioModeControl_15_8);
|
||||
rGpioMode.GpioMode10 = 0;
|
||||
WriteMsaCfg(DSP_GpioModeControl_15_8, MKWORD(rGpioMode));
|
||||
|
|
@ -88,15 +86,11 @@ static void EnableSRAM(THINKPAD_BD_DATA * pBDData)
|
|||
rGpioOutputData.Latch10 = 0;
|
||||
rGpioOutputData.Mask10 = true;
|
||||
WriteMsaCfg(DSP_GpioOutputData_15_8, MKWORD(rGpioOutputData));
|
||||
|
||||
PRINTK_1(TRACE_TP3780I, "tp3780i::EnableSRAM exit\n");
|
||||
}
|
||||
|
||||
|
||||
static irqreturn_t UartInterrupt(int irq, void *dev_id)
|
||||
{
|
||||
PRINTK_3(TRACE_TP3780I,
|
||||
"tp3780i::UartInterrupt entry irq %x dev_id %p\n", irq, dev_id);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
|
@ -107,35 +101,16 @@ static irqreturn_t DspInterrupt(int irq, void *dev_id)
|
|||
unsigned short usDspBaseIO = pSettings->usDspBaseIO;
|
||||
unsigned short usIPCSource = 0, usIsolationMask, usPCNum;
|
||||
|
||||
PRINTK_3(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt entry irq %x dev_id %p\n", irq, dev_id);
|
||||
|
||||
if (dsp3780I_GetIPCSource(usDspBaseIO, &usIPCSource) == 0) {
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt, return from dsp3780i_GetIPCSource, usIPCSource %x\n",
|
||||
usIPCSource);
|
||||
usIsolationMask = 1;
|
||||
for (usPCNum = 1; usPCNum <= 16; usPCNum++) {
|
||||
if (usIPCSource & usIsolationMask) {
|
||||
usIPCSource &= ~usIsolationMask;
|
||||
PRINTK_3(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt usPCNum %x usIPCSource %x\n",
|
||||
usPCNum, usIPCSource);
|
||||
if (pDrvData->IPCs[usPCNum - 1].usIntCount == 0) {
|
||||
pDrvData->IPCs[usPCNum - 1].usIntCount = 1;
|
||||
}
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt usIntCount %x\n",
|
||||
pDrvData->IPCs[usPCNum - 1].usIntCount);
|
||||
if (pDrvData->IPCs[usPCNum - 1].bIsEnabled == true) {
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt, waking up usPCNum %x\n",
|
||||
usPCNum - 1);
|
||||
wake_up_interruptible(&pDrvData->IPCs[usPCNum - 1].ipc_wait_queue);
|
||||
} else {
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt, no one waiting for IPC %x\n",
|
||||
usPCNum - 1);
|
||||
}
|
||||
}
|
||||
if (usIPCSource == 0)
|
||||
|
|
@ -143,11 +118,7 @@ static irqreturn_t DspInterrupt(int irq, void *dev_id)
|
|||
/* try next IPC */
|
||||
usIsolationMask = usIsolationMask << 1;
|
||||
}
|
||||
} else {
|
||||
PRINTK_1(TRACE_TP3780I,
|
||||
"tp3780i::DspInterrupt, return false from dsp3780i_GetIPCSource\n");
|
||||
}
|
||||
PRINTK_1(TRACE_TP3780I, "tp3780i::DspInterrupt exit\n");
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
|
@ -157,9 +128,6 @@ int tp3780I_InitializeBoardData(THINKPAD_BD_DATA * pBDData)
|
|||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_InitializeBoardData entry pBDData %p\n", pBDData);
|
||||
|
||||
pBDData->bDSPEnabled = false;
|
||||
pSettings->bInterruptClaimed = false;
|
||||
|
||||
|
|
@ -172,15 +140,11 @@ int tp3780I_InitializeBoardData(THINKPAD_BD_DATA * pBDData)
|
|||
}
|
||||
}
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_InitializeBoardData exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
void tp3780I_Cleanup(THINKPAD_BD_DATA *pBDData)
|
||||
{
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_Cleanup entry and exit pBDData %p\n", pBDData);
|
||||
}
|
||||
|
||||
int tp3780I_CalcResources(THINKPAD_BD_DATA * pBDData)
|
||||
|
|
@ -188,9 +152,6 @@ int tp3780I_CalcResources(THINKPAD_BD_DATA * pBDData)
|
|||
SMAPI_DSP_SETTINGS rSmapiInfo;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_CalcResources entry pBDData %p\n", pBDData);
|
||||
|
||||
if (smapi_query_DSP_cfg(&rSmapiInfo)) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE "tp3780i::tp3780I_CalcResources: Error: Could not query DSP config. Aborting.\n");
|
||||
return -EIO;
|
||||
|
|
@ -225,8 +186,6 @@ int tp3780I_CalcResources(THINKPAD_BD_DATA * pBDData)
|
|||
pBDData->bShareDspIrq = pBDData->bShareUartIrq = 0;
|
||||
}
|
||||
|
||||
PRINTK_1(TRACE_TP3780I, "tp3780i::tp3780I_CalcResources exit\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -237,30 +196,21 @@ int tp3780I_ClaimResources(THINKPAD_BD_DATA * pBDData)
|
|||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
struct resource *pres;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_ClaimResources entry pBDData %p\n", pBDData);
|
||||
|
||||
pres = request_region(pSettings->usDspBaseIO, 16, "mwave_3780i");
|
||||
if ( pres == NULL ) retval = -EIO;
|
||||
|
||||
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;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_ClaimResources exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
int tp3780I_ReleaseResources(THINKPAD_BD_DATA * pBDData)
|
||||
{
|
||||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_ReleaseResources entry pBDData %p\n", pBDData);
|
||||
|
||||
release_region(pSettings->usDspBaseIO & (~3), 16);
|
||||
|
||||
if (pSettings->bInterruptClaimed) {
|
||||
|
|
@ -268,10 +218,7 @@ int tp3780I_ReleaseResources(THINKPAD_BD_DATA * pBDData)
|
|||
pSettings->bInterruptClaimed = false;
|
||||
}
|
||||
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_ReleaseResources exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -281,8 +228,6 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
|
|||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
bool bDSPPoweredUp = false, bInterruptAllocated = false;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_EnableDSP entry pBDData %p\n", pBDData);
|
||||
|
||||
if (pBDData->bDSPEnabled) {
|
||||
PRINTK_ERROR(KERN_ERR_MWAVE "tp3780i::tp3780I_EnableDSP: Error: DSP already enabled!\n");
|
||||
goto exit_cleanup;
|
||||
|
|
@ -366,9 +311,6 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
|
|||
PRINTK_ERROR("tp3780i::tp3780I_EnableDSP: Error: Could not get 3780i IRQ %x\n", pSettings->usDspIrq);
|
||||
goto exit_cleanup;
|
||||
} else {
|
||||
PRINTK_3(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_EnableDSP, got interrupt %x bShareDspIrq %x\n",
|
||||
pSettings->usDspIrq, pBDData->bShareDspIrq);
|
||||
bInterruptAllocated = true;
|
||||
pSettings->bInterruptClaimed = true;
|
||||
}
|
||||
|
|
@ -390,8 +332,6 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
|
|||
|
||||
pBDData->bDSPEnabled = true;
|
||||
|
||||
PRINTK_1(TRACE_TP3780I, "tp3780i::tp3780I_EnableDSP exit\n");
|
||||
|
||||
return 0;
|
||||
|
||||
exit_cleanup:
|
||||
|
|
@ -408,11 +348,8 @@ int tp3780I_EnableDSP(THINKPAD_BD_DATA * pBDData)
|
|||
|
||||
int tp3780I_DisableDSP(THINKPAD_BD_DATA * pBDData)
|
||||
{
|
||||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_DisableDSP entry pBDData %p\n", pBDData);
|
||||
|
||||
if (pBDData->bDSPEnabled) {
|
||||
dsp3780I_DisableDSP(&pBDData->rDspSettings);
|
||||
if (pSettings->bInterruptClaimed) {
|
||||
|
|
@ -423,56 +360,38 @@ int tp3780I_DisableDSP(THINKPAD_BD_DATA * pBDData)
|
|||
pBDData->bDSPEnabled = false;
|
||||
}
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_DisableDSP exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int tp3780I_ResetDSP(THINKPAD_BD_DATA * pBDData)
|
||||
{
|
||||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_ResetDSP entry pBDData %p\n",
|
||||
pBDData);
|
||||
|
||||
if (dsp3780I_Reset(pSettings) == 0) {
|
||||
EnableSRAM(pBDData);
|
||||
} else {
|
||||
retval = -EIO;
|
||||
return 0;
|
||||
}
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_ResetDSP exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
||||
int tp3780I_StartDSP(THINKPAD_BD_DATA * pBDData)
|
||||
{
|
||||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_StartDSP entry pBDData %p\n", pBDData);
|
||||
|
||||
if (dsp3780I_Run(pSettings) == 0) {
|
||||
// @BUG @TBD EnableSRAM(pBDData);
|
||||
} else {
|
||||
retval = -EIO;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_StartDSP exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int tp3780I_QueryAbilities(THINKPAD_BD_DATA * pBDData, MW_ABILITIES * pAbilities)
|
||||
{
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_QueryAbilities entry pBDData %p\n", pBDData);
|
||||
|
||||
memset(pAbilities, 0, sizeof(*pAbilities));
|
||||
/* fill out standard constant fields */
|
||||
pAbilities->instr_per_sec = pBDData->rDspSettings.uIps;
|
||||
|
|
@ -497,9 +416,6 @@ int tp3780I_QueryAbilities(THINKPAD_BD_DATA * pBDData, MW_ABILITIES * pAbilities
|
|||
memcpy(pAbilities->bios_task_name, TP_ABILITIES_BIOSTASK_NAME,
|
||||
sizeof(TP_ABILITIES_BIOSTASK_NAME));
|
||||
|
||||
PRINTK_1(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_QueryAbilities exit retval=SUCCESSFUL\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -507,15 +423,10 @@ int tp3780I_ReadWriteDspDStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
|
|||
void __user *pvBuffer, unsigned int uCount,
|
||||
unsigned long ulDSPAddr)
|
||||
{
|
||||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
unsigned short usDspBaseIO = pSettings->usDspBaseIO;
|
||||
bool bRC = 0;
|
||||
|
||||
PRINTK_6(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_ReadWriteDspDStore entry pBDData %p, uOpcode %x, pvBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
pBDData, uOpcode, pvBuffer, uCount, ulDSPAddr);
|
||||
|
||||
if (pBDData->bDSPEnabled) {
|
||||
switch (uOpcode) {
|
||||
case IOCTL_MW_READ_DATA:
|
||||
|
|
@ -532,10 +443,7 @@ int tp3780I_ReadWriteDspDStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
|
|||
}
|
||||
}
|
||||
|
||||
retval = (bRC) ? -EIO : 0;
|
||||
PRINTK_2(TRACE_TP3780I, "tp3780i::tp3780I_ReadWriteDspDStore exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
return bRC ? -EIO : 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -543,15 +451,10 @@ int tp3780I_ReadWriteDspIStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
|
|||
void __user *pvBuffer, unsigned int uCount,
|
||||
unsigned long ulDSPAddr)
|
||||
{
|
||||
int retval = 0;
|
||||
DSP_3780I_CONFIG_SETTINGS *pSettings = &pBDData->rDspSettings;
|
||||
unsigned short usDspBaseIO = pSettings->usDspBaseIO;
|
||||
bool bRC = 0;
|
||||
|
||||
PRINTK_6(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_ReadWriteDspIStore entry pBDData %p, uOpcode %x, pvBuffer %p, uCount %x, ulDSPAddr %lx\n",
|
||||
pBDData, uOpcode, pvBuffer, uCount, ulDSPAddr);
|
||||
|
||||
if (pBDData->bDSPEnabled) {
|
||||
switch (uOpcode) {
|
||||
case IOCTL_MW_READ_INST:
|
||||
|
|
@ -564,11 +467,6 @@ int tp3780I_ReadWriteDspIStore(THINKPAD_BD_DATA * pBDData, unsigned int uOpcode,
|
|||
}
|
||||
}
|
||||
|
||||
retval = (bRC) ? -EIO : 0;
|
||||
|
||||
PRINTK_2(TRACE_TP3780I,
|
||||
"tp3780i::tp3780I_ReadWriteDspIStore exit retval %x\n", retval);
|
||||
|
||||
return retval;
|
||||
return bRC ? -EIO : 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user