diff options
-rw-r--r-- | wctdm24xxp/base.c | 21 | ||||
-rw-r--r-- | wcte12xp/base.c | 6 | ||||
-rw-r--r-- | wcte12xp/vpmadt032.c | 16 |
3 files changed, 31 insertions, 12 deletions
diff --git a/wctdm24xxp/base.c b/wctdm24xxp/base.c index c352dc1..7358cfa 100644 --- a/wctdm24xxp/base.c +++ b/wctdm24xxp/base.c @@ -269,6 +269,9 @@ static int vpmsupport = 1; static int vpmdtmfsupport = 0; #define VPM_DEFAULT_DTMFTHRESHOLD 1250 static int dtmfthreshold = VPM_DEFAULT_DTMFTHRESHOLD; +static int vpmnlptype = 1; +static int vpmnlpthresh = 24; +static int vpmnlpmaxsupp = 0; #endif static int wctdm_init_proslic(struct wctdm *wc, int card, int fast , int manual, int sane); @@ -2872,14 +2875,14 @@ static int vpm150m_config_hw(struct wctdm *wc) chanconfig.FrameRate = rate2ms; 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; @@ -2887,14 +2890,14 @@ static int vpm150m_config_hw(struct wctdm *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; @@ -3696,6 +3699,9 @@ module_param(alawoverride, int, 0600); module_param(vpmsupport, int, 0600); module_param(vpmdtmfsupport, int, 0600); module_param(dtmfthreshold, int, 0600); +module_param(vpmnlptype, int, 0600); +module_param(vpmnlpthresh, int, 0600); +module_param(vpmnlpmaxsupp, int, 0600); #endif #else MODULE_PARM(debug, "i"); @@ -3715,6 +3721,9 @@ MODULE_PARM(alawoverride, "i"); MODULE_PARM(vpmsupport, "i"); MODULE_PARM(vpmdtmfsupport, "i"); MODULE_PARM(dtmfthreshold, "i"); +MODULE_PARM(vpmnlptype, "i"); +MODULE_PARM(vpmnlpthresh, "i"); +MODULE_PARM(vpmnlpmaxsupp, "i"); #endif #endif MODULE_DESCRIPTION("Wildcard TDM2400P/TDM800P Zaptel Driver"); 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; |