[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