From 0a35ebf3e85a47802f2c49bfc932e53d1c17518f Mon Sep 17 00:00:00 2001 From: mattf Date: Wed, 23 Jan 2008 21:34:07 +0000 Subject: Make some echo canceller related parameters adjustable via module parameter git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3730 5390a7c7-147a-4af0-8ec9-7488f05a26cb --- wcte12xp/base.c | 6 ++++++ wcte12xp/vpmadt032.c | 16 ++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'wcte12xp') diff --git a/wcte12xp/base.c b/wcte12xp/base.c index 5c39da4..856bfa6 100644 --- a/wcte12xp/base.c +++ b/wcte12xp/base.c @@ -92,6 +92,9 @@ static int unchannelized = 0; int vpmsupport = 1; int vpmdtmfsupport = 0; int vpmtsisupport = 0; +int vpmnlptype = 1; +int vpmnlpthresh = 24; +int vpmnlpmaxsupp = 0; #endif struct t1 *ifaces[WC_MAX_IFACES]; @@ -2101,6 +2104,9 @@ MODULE_PARM(alarmdebounce, "i"); MODULE_PARM(vpmsupport, "i"); MODULE_PARM(vpmdtmfsupport, "i"); MODULE_PARM(vpmtsisupport, "i"); +MODULE_PARM(vpmnlptype, "i"); +MODULE_PARM(vpmnlpthresh, "i"); +MODULE_PARM(vpmnlpmaxsupp, "i"); #endif #endif diff --git a/wcte12xp/vpmadt032.c b/wcte12xp/vpmadt032.c index 12adadc..3c2bfc6 100644 --- a/wcte12xp/vpmadt032.c +++ b/wcte12xp/vpmadt032.c @@ -42,6 +42,10 @@ extern struct t1 *ifaces[WC_MAX_IFACES]; +extern int vpmnlptype; +extern int vpmnlpthresh; +extern int vpmnlpmaxsupp; + #ifdef VPM_SUPPORT inline void vpm150m_cmd_dequeue(struct t1 *wc, volatile unsigned char *writechunk, int whichframe) @@ -1309,14 +1313,14 @@ int vpm150m_config_hw(struct t1 *wc) chanconfig.FrameRate = rate10ms; chanconfig.EcanParametersA.EcanTapLength = 1024; - chanconfig.EcanParametersA.EcanNlpType = 1; + chanconfig.EcanParametersA.EcanNlpType = vpmnlptype; chanconfig.EcanParametersA.EcanAdaptEnable = 1; chanconfig.EcanParametersA.EcanG165DetEnable = 1; chanconfig.EcanParametersA.EcanDblTalkThresh = 6; - chanconfig.EcanParametersA.EcanNlpThreshold = 24; + chanconfig.EcanParametersA.EcanNlpThreshold = vpmnlpthresh; chanconfig.EcanParametersA.EcanNlpConv = 0; chanconfig.EcanParametersA.EcanNlpUnConv = 0; - chanconfig.EcanParametersA.EcanNlpMaxSuppress = 0; + chanconfig.EcanParametersA.EcanNlpMaxSuppress = vpmnlpmaxsupp; chanconfig.EcanParametersA.EcanCngThreshold = 43; chanconfig.EcanParametersA.EcanAdaptLimit = 50; chanconfig.EcanParametersA.EcanCrossCorrLimit = 15; @@ -1324,14 +1328,14 @@ int vpm150m_config_hw(struct t1 *wc) chanconfig.EcanParametersA.EcanFirSegmentLen = 64; chanconfig.EcanParametersB.EcanTapLength = 1024; - chanconfig.EcanParametersB.EcanNlpType = 1; + chanconfig.EcanParametersB.EcanNlpType = vpmnlptype; chanconfig.EcanParametersB.EcanAdaptEnable = 1; chanconfig.EcanParametersB.EcanG165DetEnable = 1; chanconfig.EcanParametersB.EcanDblTalkThresh = 6; - chanconfig.EcanParametersB.EcanNlpThreshold = 24; + chanconfig.EcanParametersB.EcanNlpThreshold = vpmnlpthresh; chanconfig.EcanParametersB.EcanNlpConv = 0; chanconfig.EcanParametersB.EcanNlpUnConv = 0; - chanconfig.EcanParametersB.EcanNlpMaxSuppress = 0; + chanconfig.EcanParametersB.EcanNlpMaxSuppress = vpmnlpmaxsupp; chanconfig.EcanParametersB.EcanCngThreshold = 43; chanconfig.EcanParametersB.EcanAdaptLimit = 50; chanconfig.EcanParametersB.EcanCrossCorrLimit = 15; -- cgit v1.2.3