[svn-commits] sruffell: branch linux/sruffell/dahdi-linux-vpmdebug r8921 - in /linux/team/s...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jul 13 17:22:36 CDT 2010


Author: sruffell
Date: Tue Jul 13 17:22:27 2010
New Revision: 8921

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=8921
Log:
Update gpakApi.h for 1.22

Removed:
    linux/team/sruffell/dahdi-linux-vpmdebug/.version
Modified:
    linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c
    linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h
    linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h
    linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c
    linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h

Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c Tue Jul 13 17:22:27 2010
@@ -16,6 +16,7 @@
  *
  * This program has been released under the terms of the GPL version 2 by
  * permission of Adaptive Digital Technologies, Inc.
+ *
  */
 
 /*
@@ -31,14 +32,11 @@
  * this program for more details.
  */
 
-#include <dahdi/kernel.h>
-
+#include <linux/module.h>
 #include "GpakHpi.h"
 #include "vpmadt032.h"
 #include "GpakApi.h"
 #include "gpakenum.h"
-
-#ifdef VPM_SUPPORT
 
 /* DSP to Host interface block offsets. */
 #define REPLY_MSG_PNTR_OFFSET 0     /* I/F blk offset to Reply Msg Pointer */
@@ -127,11 +125,6 @@
     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 */
-    unsigned short int i;    /* loop index / counter */
-#endif
 
     /* Read the pointer to the Interface Block. */
     gpakReadDspMemory(DspId, DSP_IFBLK_ADDRESS, 2, Temp);
@@ -164,38 +157,6 @@
             MaxChannels[DspId] = MAX_CHANNELS;
         else
             MaxChannels[DspId] = (unsigned short int) DspChannels;
-#if 0
-        /* read the number of configured DSP conferences */
-        gpakReadDspMemory(DspId, IfBlockPntr + NUM_CONFERENCES_OFFSET, 1,
-                          &DspConfs);
-        if (DspConfs > MAX_CONFS)
-            MaxConfs[DspId] = MAX_CONFS;
-        else
-            MaxConfs[DspId] = (unsigned short int) DspConfs;
-
-
-        /* read the number of configured DSP packet channels */
-        gpakReadDspMemory(DspId, IfBlockPntr + NUM_PKT_CHANNELS_OFFSET, 1,
-                          &DspChannels);
-        if (DspChannels > MAX_PKT_CHANNELS)
-            MaxPktChannels[DspId] = MAX_PKT_CHANNELS;
-        else
-            MaxPktChannels[DspId] = (unsigned short int) DspChannels;
-
-
-        /* read the pointer to the circular buffer infor struct table */
-        gpakReadDspMemory(DspId, IfBlockPntr + PKT_BUFR_MEM_OFFSET, 2, Temp);
-        RECONSTRUCT_LONGWORD(PktBufrMem, Temp);
-
-
-        /* Determine the addresses of each channel's Packet buffers. */
-        for (i = 0; i < MaxPktChannels[DspId]; i++)
-        {
-            pPktInBufr[DspId][i] = PktBufrMem;
-            pPktOutBufr[DspId][i] = PktBufrMem + CIRC_BUFFER_INFO_STRUCT_SIZE;
-            PktBufrMem += (CIRC_BUFFER_INFO_STRUCT_SIZE*2);
-        }
-#endif
 
         /* read the pointer to the event fifo info struct */
         gpakReadDspMemory(DspId, IfBlockPntr + EVENT_MSG_PNTR_OFFSET, 2, Temp);
@@ -509,7 +470,7 @@
  */
 gpakConfigPortStatus_t gpakConfigurePorts(
     unsigned short int DspId,       /* DSP Id (0 to MaxDSPCores-1) */
-    GpakPortConfig_t *pPortConfig,  /* pointer to Port Config info */
+    const GpakPortConfig_t *pPortConfig,  /* pointer to Port Config info */
     GPAK_PortConfigStat_t *pStatus  /* pointer to Port Config Status */
     )
 {
@@ -560,7 +521,7 @@
                     ((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) |
@@ -672,7 +633,7 @@
                        ((pChanConfig->SoftwareCompand & 3) << 2) |
                         (pChanConfig->EcanEnableB << 1) | 
                         (pChanConfig->EcanEnableA & 1)
-						);
+                        );
                         
         MsgBuffer[7]   = (DSP_WORD)
                          pChanConfig->EcanParametersA.EcanTapLength;       
@@ -733,9 +694,134 @@
         MsgBuffer[34]  = (DSP_WORD)
                          pChanConfig->EcanParametersB.EcanFirSegmentLen;   
 
-        MsgLength = 70; // byte number == 35*2 
+        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;   
+
+        MsgLength = 76; // byte number == 38*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->ChannelId_tobe_Debug;   
+
+        MsgLength = 78; // byte number == 39*2 
+        break;
 
     /* Unknown (invalid) channel type. */
     default:
@@ -889,9 +975,6 @@
     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)
@@ -911,7 +994,7 @@
     EventInfoAddress = pEventFifoAddress[DspId];
     gpakReadDspMemory(DspId, EventInfoAddress, CIRC_BUFFER_INFO_STRUCT_SIZE, 
                                                                  WordBuffer);
-	RECONSTRUCT_LONGWORD(BufrBaseAddress, ((DSP_WORD *)&WordBuffer[CB_BUFR_BASE]));
+    RECONSTRUCT_LONGWORD(BufrBaseAddress, ((DSP_WORD *)&WordBuffer[CB_BUFR_BASE]));
     BufrSize = WordBuffer[CB_BUFR_SIZE];
     PutIndex = WordBuffer[CB_BUFR_PUT_INDEX];
     TakeIndex = WordBuffer[CB_BUFR_TAKE_INDEX];
@@ -1249,7 +1332,7 @@
     *pFramingError3Count = ReadBuffer[2];
     *pDmaStopErrorCount  = ReadBuffer[3];
     
-    if(pDmaSlipStatsBuffer != NULL) 
+    if(pDmaSlipStatsBuffer != 0) 
     // If users want to get the DMA slips count
     {
 	    pDmaSlipStatsBuffer[0] = ReadBuffer[4];
@@ -1612,4 +1695,3 @@
     /* Return with an indication that System Parameters info was obtained. */
     return (RspSuccess);
 }
-#endif

Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h Tue Jul 13 17:22:27 2010
@@ -14,29 +14,12 @@
  * Revision History:
  *   06/15/05 - Initial release.
  *   11/15/2006  - 24 TDM-TDM Channels EC release
- *
- * This program has been released under the terms of the GPL version 2 by
- * permission of Adaptive Digital Technologies, Inc.
- *
- */
-
-/*
- * See http://www.asterisk.org for more information about
- * the Asterisk project. Please do not directly contact
- * any of the maintainers of this project for assistance;
- * the project provides a web site, mailing lists and IRC
- * channels for your use.
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License Version 2 as published by the
- * Free Software Foundation. See the LICENSE file included with
- * this program for more details.
  */
 
 #ifndef _GPAKAPI_H  /* prevent multiple inclusion */
 #define _GPAKAPI_H
+#include "gpakenum.h"
 #include "GpakErrs.h"
-#include "gpakenum.h"
 
 // Bit masks to select which algorithm's parameters to update: Or-together the
 // desired masks into the UpdateBits function parameter.
@@ -60,13 +43,14 @@
 } GpakAsyncEventData_t;
 
 /* Definition of an Echo Canceller Parameters information structure. */
-typedef struct
+typedef struct GpakEcanParms
 {
     short int EcanTapLength;       // Echo Can Num Taps (tail length) 
     short int EcanNlpType;         // Echo Can NLP Type 
     short int EcanAdaptEnable;     // Echo Can Adapt Enable flag 
     short int EcanG165DetEnable;   // Echo Can G165 Detect Enable flag 
     short int EcanDblTalkThresh;   // Echo Can Double Talk threshold 
+	short int EcanMaxDoubleTalkThres; // Maximum double-talk threshold
     short int EcanNlpThreshold;    // Echo Can NLP threshold 
     short int EcanNlpConv;  // Dynamic NLP control, NLP limit when EC about to converged
     short int EcanNlpUnConv;// Dynamic NLP control, NLP limit when EC not converged yet
@@ -76,10 +60,13 @@
     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
+	short int EcanReconvergenceCheckEnable; 	// Handle possible 4-wire (echo-free) lines
 } GpakEcanParms_t;
 
 /* Definition of a Channel Configuration information structure. */
-typedef struct
+typedef struct GpakChannelConfig
 {
     GpakSerialPort_t    PcmInPortA;         // A side PCM Input Serial Port Id 
     unsigned short int  PcmInSlotA;         // A side PCM Input Time Slot 
@@ -101,12 +88,14 @@
     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;
 
 
 /* Definition of a Serial Port Configuration Structure */
-typedef struct
+typedef struct GpakPortConfig
 {
     GpakSlotCfg_t SlotsSelect1;         // port 1 Slot selection
     unsigned short int FirstBlockNum1;  // port 1 first group Block Number
@@ -302,7 +291,7 @@
  */
 extern gpakConfigPortStatus_t gpakConfigurePorts(
     unsigned short int DspId,           // DSP identifier
-    GpakPortConfig_t   *pPortConfig,     // pointer to Port Config info
+    const GpakPortConfig_t   *pPortConfig,     // pointer to Port Config info
     GPAK_PortConfigStat_t *pStatus      // pointer to Port Config Status
     );
 

Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h Tue Jul 13 17:22:27 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 */

Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c Tue Jul 13 17:22:27 2010
@@ -882,7 +882,7 @@
 	pingstatus = gpakPingDsp(vpm150m->dspid, &vpm150m->version);
 
 	if (!pingstatus) {
-		debug_printk(1, "Version of DSP is %x\n", vpm150m->version);
+		module_printk("Version of DSP is %x\n", vpm150m->version);
 	} else {
 		module_printk("Unable to ping the DSP (%d)!\n", pingstatus);
 		goto failed_exit;
@@ -1136,6 +1136,7 @@
 	GpakChannelConfig_t chanconfig;
 	GPAK_ChannelConfigStat_t cstatus;
 	GPAK_AlgControlStat_t algstatus;
+	GpakEcanParms_t *p;
 
 	int res, i;
 
@@ -1262,22 +1263,34 @@
 		chanconfig.EcanParametersA.EcanCrossCorrLimit = 15;
 		chanconfig.EcanParametersA.EcanNumFirSegments = 3;
 		chanconfig.EcanParametersA.EcanFirSegmentLen = 64;
+
+		p = &chanconfig.EcanParametersA;
+
+#define DEFAULT_NLPTYPE 6
+#define DEFAULT_NLPTHRESH 22
+#define DEFAULT_NLPMAXSUPP 10
 	
-		chanconfig.EcanParametersB.EcanTapLength = 1024;
-		chanconfig.EcanParametersB.EcanNlpType = vpmnlptype;
-		chanconfig.EcanParametersB.EcanAdaptEnable = 1;
-		chanconfig.EcanParametersB.EcanG165DetEnable = 1;
-		chanconfig.EcanParametersB.EcanDblTalkThresh = 6;
-		chanconfig.EcanParametersB.EcanNlpThreshold = vpmnlpthresh;
-		chanconfig.EcanParametersB.EcanNlpConv = 0;
-		chanconfig.EcanParametersB.EcanNlpUnConv = 0;
-		chanconfig.EcanParametersB.EcanNlpMaxSuppress = vpmnlpmaxsupp;
-		chanconfig.EcanParametersB.EcanCngThreshold = 43;
-		chanconfig.EcanParametersB.EcanAdaptLimit = 50;
-		chanconfig.EcanParametersB.EcanCrossCorrLimit = 15;
-		chanconfig.EcanParametersB.EcanNumFirSegments = 3;
-		chanconfig.EcanParametersB.EcanFirSegmentLen = 64;
-	
+		p->EcanTapLength = 1024;
+		p->EcanNlpType = DEFAULT_NLPTYPE;
+		p->EcanAdaptEnable = 1;
+		p->EcanG165DetEnable = 1;
+		p->EcanDblTalkThresh = 6;
+		p->EcanMaxDoubleTalkThres = 40;
+		p->EcanNlpThreshold = DEFAULT_NLPTHRESH;
+		p->EcanNlpConv = 18;
+		p->EcanNlpUnConv = 12;
+		p->EcanNlpMaxSuppress = DEFAULT_NLPMAXSUPP;
+		p->EcanCngThreshold = 43;
+		p->EcanAdaptLimit = 50;
+		p->EcanCrossCorrLimit = 15;
+		p->EcanNumFirSegments = 3;
+		p->EcanFirSegmentLen = 48;
+		p->EcanReconvergenceCheckEnable = 2;
+		p->EcanTandemOperationEnable = 0;
+		p->EcanMixedFourWireMode = 0;
+
+		memcpy(&chanconfig.EcanParametersB, p, sizeof(*p));
+
 		if ((res = gpakConfigureChannel(vpm150m->dspid, i, tdmToTdm, &chanconfig, &cstatus))) {
 			module_printk("Unable to configure channel (%d)\n", res);
 			if (res == 1) {

Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h Tue Jul 13 17:22:27 2010
@@ -29,6 +29,8 @@
 
 #ifndef _VPM150M_H
 #define _VPM150M_H
+
+#include "dahdi/kernel.h"
 
 #include "wcte12xp.h"
 #include "adt_lec.h"




More information about the svn-commits mailing list