[svn-commits] sruffell: linux/trunk r8983 - in /linux/trunk/drivers/dahdi: firmware/ voicebus/
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Sun Jul 25 19:30:50 CDT 2010
Author: sruffell
Date: Sun Jul 25 19:30:38 2010
New Revision: 8983
URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=8983
Log:
wcte12xp, wctdm24xxp: Updating VPMADT032 firmware to version to 1.25
The echo canceler will now monitor if the receive signal goes over a
certain threshold, and if so, freezes its adaptation to prevent loss of
convergence. I.e. Fixes conditions where blowing into your handset
could result in echo. Additionally, 1.25 includes improvements for
handling when line conditions change from echo free to containing echo.
Modified:
linux/trunk/drivers/dahdi/firmware/Makefile
linux/trunk/drivers/dahdi/voicebus/GpakApi.c
linux/trunk/drivers/dahdi/voicebus/GpakApi.h
linux/trunk/drivers/dahdi/voicebus/GpakCust.c
linux/trunk/drivers/dahdi/voicebus/gpakErrs.h
linux/trunk/drivers/dahdi/voicebus/gpakenum.h
Modified: linux/trunk/drivers/dahdi/firmware/Makefile
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/firmware/Makefile?view=diff&rev=8983&r1=8982&r2=8983
==============================================================================
--- linux/trunk/drivers/dahdi/firmware/Makefile (original)
+++ linux/trunk/drivers/dahdi/firmware/Makefile Sun Jul 25 19:30:38 2010
@@ -25,7 +25,7 @@
OCT6114_064_VERSION:=1.05.01
OCT6114_128_VERSION:=1.05.01
TC400M_VERSION:=MR6.12
-VPMADT032_VERSION:=1.20.0
+VPMADT032_VERSION:=1.25.0
HX8_VERSION:=2.06
FIRMWARE_URL:=http://downloads.digium.com/pub/telephony/firmware/releases
Modified: linux/trunk/drivers/dahdi/voicebus/GpakApi.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/voicebus/GpakApi.c?view=diff&rev=8983&r1=8982&r2=8983
==============================================================================
--- linux/trunk/drivers/dahdi/voicebus/GpakApi.c (original)
+++ linux/trunk/drivers/dahdi/voicebus/GpakApi.c Sun Jul 25 19:30:38 2010
@@ -722,9 +722,135 @@
MsgBuffer[37] = (DSP_WORD)
pChanConfig->EcanParametersB.EcanMaxDoubleTalkThres;
- MsgLength = 76; // byte number == 38*2
- break;
-
+ MsgBuffer[38] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanSaturationLevel;
+ MsgBuffer[39] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanSaturationLevel;
+ MsgBuffer[40] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNLPSaturationThreshold;
+ MsgBuffer[41] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNLPSaturationThreshold;
+ MsgLength = 84; /* byte number == 42*2 */
+ break;
+
+ /* PCM to Packet channel type. */
+ case tdmToTdmDebug:
+
+ MsgBuffer[2] = (DSP_WORD)
+ ((pChanConfig->PcmInPortA << 8) |
+ (pChanConfig->PcmInSlotA & 0xFF));
+ MsgBuffer[3] = (DSP_WORD)
+ ((pChanConfig->PcmOutPortA << 8) |
+ (pChanConfig->PcmOutSlotA & 0xFF));
+
+ MsgBuffer[4] = (DSP_WORD)
+ ((pChanConfig->PcmInPortB << 8) |
+ (pChanConfig->PcmInSlotB & 0xFF));
+ MsgBuffer[5] = (DSP_WORD)
+ ((pChanConfig->PcmOutPortB << 8) |
+ (pChanConfig->PcmOutSlotB & 0xFF));
+
+ MsgBuffer[6] = (DSP_WORD)
+ (
+ ((pChanConfig->FaxCngDetB << 11) & 0x0800) |
+ ((pChanConfig->FaxCngDetA << 10) & 0x0400) |
+ ((pChanConfig->MuteToneB << 9) & 0x0200) |
+ ((pChanConfig->MuteToneA << 8) & 0x0100) |
+ ((pChanConfig->FrameRate << 6) & 0x00C0) |
+ ((pChanConfig->ToneTypesB << 5) & 0x0020) |
+ ((pChanConfig->ToneTypesA << 4) & 0x0010) |
+ ((pChanConfig->SoftwareCompand & 3) << 2) |
+ (pChanConfig->EcanEnableB << 1) |
+ (pChanConfig->EcanEnableA & 1)
+ );
+
+ MsgBuffer[7] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanTapLength;
+ MsgBuffer[8] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpType;
+ MsgBuffer[9] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanAdaptEnable;
+ MsgBuffer[10] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanG165DetEnable;
+ MsgBuffer[11] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanDblTalkThresh;
+ MsgBuffer[12] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpThreshold;
+ MsgBuffer[13] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpConv;
+ MsgBuffer[14] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpUnConv;
+ MsgBuffer[15] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpMaxSuppress;
+
+ MsgBuffer[16] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanCngThreshold;
+ MsgBuffer[17] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanAdaptLimit;
+ MsgBuffer[18] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanCrossCorrLimit;
+ MsgBuffer[19] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNumFirSegments;
+ MsgBuffer[20] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanFirSegmentLen;
+
+ MsgBuffer[21] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanTapLength;
+ MsgBuffer[22] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpType;
+ MsgBuffer[23] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanAdaptEnable;
+ MsgBuffer[24] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanG165DetEnable;
+ MsgBuffer[25] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanDblTalkThresh;
+ MsgBuffer[26] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpThreshold;
+ MsgBuffer[27] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpConv;
+ MsgBuffer[28] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpUnConv;
+ MsgBuffer[29] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpMaxSuppress;
+ MsgBuffer[30] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanCngThreshold;
+ MsgBuffer[31] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanAdaptLimit;
+ MsgBuffer[32] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanCrossCorrLimit;
+ MsgBuffer[33] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNumFirSegments;
+ MsgBuffer[34] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanFirSegmentLen;
+
+ MsgBuffer[35] = (DSP_WORD)
+ (
+ ((pChanConfig->EcanParametersB.EcanReconvergenceCheckEnable << 5) & 0x20) |
+ ((pChanConfig->EcanParametersA.EcanReconvergenceCheckEnable << 4) & 0x10) |
+ ((pChanConfig->EcanParametersB.EcanTandemOperationEnable << 3) & 0x8) |
+ ((pChanConfig->EcanParametersA.EcanTandemOperationEnable << 2) & 0x4) |
+ ((pChanConfig->EcanParametersB.EcanMixedFourWireMode << 1) & 0x2) |
+ (pChanConfig->EcanParametersA.EcanMixedFourWireMode & 1)
+ );
+ MsgBuffer[36] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanMaxDoubleTalkThres;
+
+ MsgBuffer[37] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanMaxDoubleTalkThres;
+
+ MsgBuffer[38] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanSaturationLevel;
+ MsgBuffer[39] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanSaturationLevel;
+ MsgBuffer[40] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNLPSaturationThreshold;
+ MsgBuffer[41] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNLPSaturationThreshold;
+ MsgBuffer[42] = (DSP_WORD)
+ pChanConfig->ChannelId_tobe_Debug;
+
+ MsgLength = 86; /* byte number == 43*2 */
+ break;
/* Unknown (invalid) channel type. */
default:
Modified: linux/trunk/drivers/dahdi/voicebus/GpakApi.h
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/voicebus/GpakApi.h?view=diff&rev=8983&r1=8982&r2=8983
==============================================================================
--- linux/trunk/drivers/dahdi/voicebus/GpakApi.h (original)
+++ linux/trunk/drivers/dahdi/voicebus/GpakApi.h Sun Jul 25 19:30:38 2010
@@ -63,6 +63,8 @@
short int EcanTandemOperationEnable; //Enable tandem operation
short int EcanMixedFourWireMode; // Handle possible 4-wire (echo-free) lines
short int EcanReconvergenceCheckEnable; // Handle possible 4-wire (echo-free) lines
+ short int EcanSaturationLevel; /* Far end input level above which significant saturation/nonlinearity may be expected. */
+ short int EcanNLPSaturationThreshold; /* NLP threshold under conditions of possible saturation */
} GpakEcanParms_t;
/* Definition of a Channel Configuration information structure. */
@@ -88,6 +90,8 @@
GpakActivation MuteToneB; // B side mute DTMF Enabled
GpakActivation FaxCngDetA; // A side FaxCng Tone Detector Enabled
GpakActivation FaxCngDetB; // B side FaxCng Tone Detector Enabled
+ unsigned short int ChannelId_tobe_Debug; /* Channel Id of the channel that we'd like to debug */
+ /* (0 to MaxChannels-1), only used for tdmToTdmDebug */
} GpakChannelConfig_t;
Modified: linux/trunk/drivers/dahdi/voicebus/GpakCust.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/voicebus/GpakCust.c?view=diff&rev=8983&r1=8982&r2=8983
==============================================================================
--- linux/trunk/drivers/dahdi/voicebus/GpakCust.c (original)
+++ linux/trunk/drivers/dahdi/voicebus/GpakCust.c Sun Jul 25 19:30:38 2010
@@ -716,13 +716,15 @@
p->EcanNlpUnConv = 12;
p->EcanNlpMaxSuppress = DEFAULT_NLPMAXSUPP;
p->EcanCngThreshold = 43;
- p->EcanAdaptLimit = 50;
+ p->EcanAdaptLimit = 25;
p->EcanCrossCorrLimit = 15;
p->EcanNumFirSegments = 3;
p->EcanFirSegmentLen = 48;
- p->EcanReconvergenceCheckEnable = 2;
+ p->EcanReconvergenceCheckEnable = 1;
p->EcanTandemOperationEnable = 0;
p->EcanMixedFourWireMode = 0;
+ p->EcanSaturationLevel = 3;
+ p->EcanNLPSaturationThreshold = 6;
}
EXPORT_SYMBOL(vpmadt032_get_default_parameters);
Modified: linux/trunk/drivers/dahdi/voicebus/gpakErrs.h
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/voicebus/gpakErrs.h?view=diff&rev=8983&r1=8982&r2=8983
==============================================================================
--- linux/trunk/drivers/dahdi/voicebus/gpakErrs.h (original)
+++ linux/trunk/drivers/dahdi/voicebus/gpakErrs.h Sun Jul 25 19:30:38 2010
@@ -97,8 +97,10 @@
Cc_InvalidMuteToneA = 51, /* invalid MuteToneA set, no detector */
Cc_InvalidMuteToneB = 52, /* invalid MuteToneB set, no detector */
- Cc_InsuffFaxCngDetResources = 53 /* insufficient tdm block resources avail. */
-
+ Cc_InsuffFaxCngDetResources = 53, /* insufficient tdm block resources avail. */
+ Cc_PortDmaNotStarted = 54, /* SerialPort not ready */
+ Cc_ChannelDebugActive = 55, /* Debug Channel is not active */
+ Cc_ChannelDebugEnabled = 56 /* Channel already been debugged */
} GPAK_ChannelConfigStat_t;
/* Tear Down Channel reply status codes. */
Modified: linux/trunk/drivers/dahdi/voicebus/gpakenum.h
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/voicebus/gpakenum.h?view=diff&rev=8983&r1=8982&r2=8983
==============================================================================
--- linux/trunk/drivers/dahdi/voicebus/gpakenum.h (original)
+++ linux/trunk/drivers/dahdi/voicebus/gpakenum.h Sun Jul 25 19:30:38 2010
@@ -98,7 +98,8 @@
typedef enum
{
inactive=0, // channel inactive
- tdmToTdm=1 // tdmToTdm
+ tdmToTdm = 1, /* tdmToTdm */
+ tdmToTdmDebug = 2 /* tdmToTdm */
} GpakChanType;
/* G.PAK Algorithm control commands */
More information about the svn-commits
mailing list