diff options
author | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-14 16:39:39 +0000 |
---|---|---|
committer | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-03-14 16:39:39 +0000 |
commit | 562f282a49a8d26080c0c322ef1f7246fa8a3320 (patch) | |
tree | 1e0993c2bc4b1983a91aa72c63d45c00260e9a7b /kernel | |
parent | 6bfbb4a31de03374ba822816caaa88d341487001 (diff) |
Update wctdm24xxp's VPMADT032 firmware to version 1.16
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3990 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/wctdm24xxp/GpakApi.c | 46 | ||||
-rw-r--r-- | kernel/wctdm24xxp/GpakApi.h | 3 | ||||
-rw-r--r-- | kernel/wctdm24xxp/base.c | 10 |
3 files changed, 25 insertions, 34 deletions
diff --git a/kernel/wctdm24xxp/GpakApi.c b/kernel/wctdm24xxp/GpakApi.c index abdb09f..8f03c7f 100644 --- a/kernel/wctdm24xxp/GpakApi.c +++ b/kernel/wctdm24xxp/GpakApi.c @@ -32,10 +32,9 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ - + #include <linux/version.h> #include <asm/semaphore.h> - #include "zaptel.h" #include "GpakHpi.h" @@ -129,12 +128,10 @@ static int CheckDspReset( DSP_ADDRESS IfBlockPntr; /* Interface Block pointer */ DSP_WORD DspStatus; /* DSP Status */ DSP_WORD DspChannels; /* number of DSP channels */ - DSP_WORD Temp[2]; -#if 0 DSP_WORD DspConfs; /* number of DSP conferences */ DSP_ADDRESS PktBufrMem; /* address of Packet Buffer */ + DSP_WORD Temp[2]; unsigned short int i; /* loop index / counter */ -#endif /* Read the pointer to the Interface Block. */ gpakReadDspMemory(DspId, DSP_IFBLK_ADDRESS, 2, Temp); @@ -563,7 +560,7 @@ gpakConfigPortStatus_t gpakConfigurePorts( ((pPortConfig->RxFrameSyncPolarity2 << 4) & 0x0010) | ((pPortConfig->TxFrameSyncPolarity2 << 3) & 0x0008) | ((pPortConfig->CompandingMode2 << 1) & 0x0006) | - (pPortConfig->SerialWordSize1 & 0x0001)); + (pPortConfig->SerialWordSize2 & 0x0001)); MsgBuffer[12] = (DSP_WORD) (((pPortConfig->DxDelay3 << 11) & 0x0800) | @@ -735,8 +732,16 @@ gpakConfigChanStatus_t gpakConfigureChannel( pChanConfig->EcanParametersB.EcanNumFirSegments; MsgBuffer[34] = (DSP_WORD) pChanConfig->EcanParametersB.EcanFirSegmentLen; - - MsgLength = 70; // byte number == 35*2 + MsgBuffer[35] = (DSP_WORD) + pChanConfig->EcanParametersA.EcanTandemOperationEnable; + MsgBuffer[36] = (DSP_WORD) + pChanConfig->EcanParametersA.EcanMixedFourWireMode; + MsgBuffer[37] = (DSP_WORD) + pChanConfig->EcanParametersB.EcanTandemOperationEnable; + MsgBuffer[38] = (DSP_WORD) + pChanConfig->EcanParametersB.EcanMixedFourWireMode; + + MsgLength = 78; // byte number == 39*2 break; @@ -892,32 +897,21 @@ gpakReadEventFIFOMessageStat_t gpakReadEventFIFOMessage( DSP_WORD TakeIndex; /* event fifo take index */ DSP_WORD WordsReady; /* number words ready for read out of event fifo */ DSP_WORD EventError; /* flag indicating error with event fifo msg */ -#if 0 DSP_WORD *pDebugData; /* debug data buffer pointer in event data struct */ -#endif /* Make sure the DSP Id is valid. */ - if (DspId >= MAX_DSP_CORES) { -#if 0 - printk("Invalid DSP\n"); -#endif + if (DspId >= MAX_DSP_CORES) return (RefInvalidDsp); - } /* Lock access to the DSP. */ gpakLockAccess(DspId); -#if 1 /* Check if the DSP was reset and is ready. */ if (CheckDspReset(DspId) == -1) { gpakUnlockAccess(DspId); -#if 0 - printk("CheckDspReset failed (DspId %d)\n", DspId); -#endif return (RefDspCommFailure); } -#endif /* Check if an event message is ready in the DSP. */ EventInfoAddress = pEventFifoAddress[DspId]; @@ -958,9 +952,6 @@ gpakReadEventFIFOMessageStat_t gpakReadEventFIFOMessage( if (EventDataLength > WORD_BUFFER_SIZE) { gpakUnlockAccess(DspId); -#if 0 - printk("EventDataLength > WORD_BUFFER_SIZE (%d)\n", EventDataLength); -#endif return (RefInvalidEvent); } ReadCircBuffer(DspId, BufrBaseAddress, BufrLastAddress, &TakeAddress, @@ -973,18 +964,11 @@ gpakReadEventFIFOMessageStat_t gpakReadEventFIFOMessage( TakeIndex += EventDataLength; if (TakeIndex >= BufrSize) TakeIndex -= BufrSize; - if (EventDataLength != 4) { -#if 0 - printk("EventDataLength != 4 it's %d\n", EventDataLength); -#endif + if (EventDataLength != 4) EventError = 1; - } break; default: -#if 0 - printk("Event Code not in switch\n"); -#endif EventError = 1; break; }; diff --git a/kernel/wctdm24xxp/GpakApi.h b/kernel/wctdm24xxp/GpakApi.h index df57c09..a435db3 100644 --- a/kernel/wctdm24xxp/GpakApi.h +++ b/kernel/wctdm24xxp/GpakApi.h @@ -77,6 +77,9 @@ typedef struct short int EcanCrossCorrLimit; // Echo Can Cross Correlation limit short int EcanNumFirSegments; // Echo Can Num FIR Segments short int EcanFirSegmentLen; // Echo Can FIR Segment Length + short int EcanTandemOperationEnable; //Enable tandem operation + short int EcanMixedFourWireMode; // Handle possible 4-wire (echo-free) lines + } GpakEcanParms_t; /* Definition of a Channel Configuration information structure. */ diff --git a/kernel/wctdm24xxp/base.c b/kernel/wctdm24xxp/base.c index 8f5ae14..201f475 100644 --- a/kernel/wctdm24xxp/base.c +++ b/kernel/wctdm24xxp/base.c @@ -295,7 +295,7 @@ static int dtmfthreshold = VPM_DEFAULT_DTMFTHRESHOLD; * 4 : Suppression NLP - In order to use this, you must set the vpmnlpmaxsupp parameter to * some value in order to give the amount of dB to suppress to the suppressor */ -static int vpmnlptype = 1; +static int vpmnlptype = 3; /* This is the threshold (in dB) for enabling and disabling of the NLP */ static int vpmnlpthresh = 24; /* See vpmnlptype = 4 for more info */ @@ -3348,13 +3348,15 @@ void vpm150m_set_chanconfig_from_state(struct adt_lec_params * parms, int channu chanconfig->EcanParametersA.EcanDblTalkThresh = 6; chanconfig->EcanParametersA.EcanNlpThreshold = parms->nlp_threshold; chanconfig->EcanParametersA.EcanNlpConv = 0; - chanconfig->EcanParametersA.EcanNlpUnConv = 0; + chanconfig->EcanParametersA.EcanNlpUnConv = 12; chanconfig->EcanParametersA.EcanNlpMaxSuppress = parms->nlp_max_suppress; chanconfig->EcanParametersA.EcanCngThreshold = 43; chanconfig->EcanParametersA.EcanAdaptLimit = 50; chanconfig->EcanParametersA.EcanCrossCorrLimit = 15; chanconfig->EcanParametersA.EcanNumFirSegments = 3; chanconfig->EcanParametersA.EcanFirSegmentLen = 64; + chanconfig->EcanParametersA.EcanTandemOperationEnable = 1; + chanconfig->EcanParametersA.EcanMixedFourWireMode = 1; chanconfig->EcanParametersB.EcanTapLength = 1024; chanconfig->EcanParametersB.EcanNlpType = parms->nlp_type; @@ -3363,13 +3365,15 @@ void vpm150m_set_chanconfig_from_state(struct adt_lec_params * parms, int channu chanconfig->EcanParametersB.EcanDblTalkThresh = 6; chanconfig->EcanParametersB.EcanNlpThreshold = parms->nlp_threshold; chanconfig->EcanParametersB.EcanNlpConv = 0; - chanconfig->EcanParametersB.EcanNlpUnConv = 0; + chanconfig->EcanParametersB.EcanNlpUnConv = 12; chanconfig->EcanParametersB.EcanNlpMaxSuppress = parms->nlp_max_suppress; chanconfig->EcanParametersB.EcanCngThreshold = 43; chanconfig->EcanParametersB.EcanAdaptLimit = 50; chanconfig->EcanParametersB.EcanCrossCorrLimit = 15; chanconfig->EcanParametersB.EcanNumFirSegments = 3; chanconfig->EcanParametersB.EcanFirSegmentLen = 64; + chanconfig->EcanParametersB.EcanTandemOperationEnable = 1; + chanconfig->EcanParametersB.EcanMixedFourWireMode = 1; } #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) |