[svn-commits] tzafrir: branch 1.2 r1668 - in /branches/1.2/xpp: ./ xpd.h xpp_zap.c

svn-commits at lists.digium.com svn-commits at lists.digium.com
Thu Nov 30 14:48:25 MST 2006


Author: tzafrir
Date: Thu Nov 30 15:48:25 2006
New Revision: 1668

URL: http://svn.digium.com/view/zaptel?view=rev&rev=1668
Log:
 r2832 at boole:  tzafrir | 2006-11-29 11:06:06 +0200
 Add parameter xpp_ec to the module xpp (xpp_zap.c). Defaults to 1. 
 If 0, module will use Zaptel echo canceller even with XPP_EC_CHUNK.
 Parameter is read-only for now: cannot be set through /sys/modules.
 (Merge of changeset:2830)
 

Modified:
    branches/1.2/xpp/   (props changed)
    branches/1.2/xpp/xpd.h
    branches/1.2/xpp/xpp_zap.c

Propchange: branches/1.2/xpp/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Thu Nov 30 15:48:25 2006
@@ -1,4 +1,4 @@
-283159da-0705-0410-b60c-f2062b4bb6ad:/components/xpp-zaptel/branches/RELEASE-1.2.0/xpp:2831
+283159da-0705-0410-b60c-f2062b4bb6ad:/components/xpp-zaptel/branches/RELEASE-1.2.0/xpp:2832
 283159da-0705-0410-b60c-f2062b4bb6ad:/components/xpp-zaptel/trunk/xpp:2600
 f558416c-6c06-0410-9f27-dde2687782d0:/branches/1.4/xpp:1623
 f558416c-6c06-0410-9f27-dde2687782d0:/team/tzafrir/xpp_1.2/xpp:1554

Modified: branches/1.2/xpp/xpd.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/xpd.h?view=diff&rev=1668&r1=1667&r2=1668
==============================================================================
--- branches/1.2/xpp/xpd.h (original)
+++ branches/1.2/xpp/xpd.h Thu Nov 30 15:48:25 2006
@@ -43,6 +43,10 @@
 #define	DEF_PARM(type,name,init,desc)	\
 	type name = init;	\
 	module_param(name, type, 0600);		\
+	MODULE_PARM_DESC(name, desc)
+#define	DEF_PARM_RO(type,name,init,desc)	\
+	type name = init;	\
+	module_param(name, type, 0400);		\
 	MODULE_PARM_DESC(name, desc)
 
 #if	LINUX_VERSION_CODE	< KERNEL_VERSION(2,6,10)

Modified: branches/1.2/xpp/xpp_zap.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/xpp/xpp_zap.c?view=diff&rev=1668&r1=1667&r2=1668
==============================================================================
--- branches/1.2/xpp/xpp_zap.c (original)
+++ branches/1.2/xpp/xpp_zap.c Thu Nov 30 15:48:25 2006
@@ -66,6 +66,11 @@
 DEF_PARM(int, print_dbg, 0, "Print DBG statements");
 DEF_PARM(bool, zap_autoreg, 1, "Register spans automatically (1) or not (0)");
 DEF_PARM(bool, prefmaster, 1, "Do we want to be zaptel preferred sync master");
+#ifdef	XPP_EC_CHUNK
+DEF_PARM_RO(bool, xpp_ec, 1, "Do we use our own (1) or Zaptel's (0) echo canceller");
+#else
+static int xpp_ec = 0;
+#endif
 // DEF_ARRAY(int, pcmtx, 4, 0, "Forced PCM values to transmit");
 
 #include "zap_debug.h"
@@ -1042,11 +1047,13 @@
 	for (i = 0;i < xpd->span.channels; i++) {
 		if(IS_SET(xpd->digital_signalling, i))	/* Don't echo cancel PRI/BRI D-chans */
 			continue;
-#ifdef XPP_EC_CHUNK
-		xpp_ec_chunk(&chans[i], chans[i].readchunk, xpd->ec_chunk2[i]);
-#else
-		zt_ec_chunk(&chans[i], chans[i].readchunk, xpd->ec_chunk2[i]);
-#endif
+#ifdef XPP_EC_CHUNK 
+		/* even if defined, parameterr xpp_ec can override at run-time */
+		if (xpp_ec)
+			xpp_ec_chunk(&chans[i], chans[i].readchunk, xpd->ec_chunk2[i]);
+		else
+#endif
+			zt_ec_chunk(&chans[i], chans[i].readchunk, xpd->ec_chunk2[i]);
 		memcpy(xpd->ec_chunk2[i], xpd->ec_chunk1[i], ZT_CHUNKSIZE);
 		memcpy(xpd->ec_chunk1[i], chans[i].writechunk, ZT_CHUNKSIZE);
 	}
@@ -1270,9 +1277,9 @@
 int (*sethook)(struct zt_chan *chan, int hookstate);
 #endif
 
+static int xpp_echocan(struct zt_chan *chan, int len)
+{
 #ifdef	XPP_EC_CHUNK
-static int xpp_echocan(struct zt_chan *chan, int len)
-{
 	if(len == 0) {	/* shut down */
 		/* zaptel calls this also during channel initialization */
 		if(chan->ec) {
@@ -1289,9 +1296,9 @@
 		ERR("%s: Failed creating xpp EC (len=%d)\n", __FUNCTION__, len);
 		return -EINVAL;
 	}
+#endif
 	return 0;
 }
-#endif
 
 #ifdef	CONFIG_ZAPTEL_WATCHDOG
 /*
@@ -1389,9 +1396,8 @@
 	span->hooksig = xpp_hooksig;	/* Only with RBS bits */
 	span->ioctl = xpp_ioctl;
 	span->maint = xpp_maint;
-#ifdef	XPP_EC_CHUNK
-	span->echocan = xpp_echocan;
-#endif
+	if (xpp_ec)
+		span->echocan = xpp_echocan;
 #ifdef	CONFIG_ZAPTEL_WATCHDOG
 	span->watchdog = xpp_watchdog;
 #endif
@@ -1449,11 +1455,10 @@
 #else
 	INFO("FEATURE: %s (without ECHO_SUPPRESSION)\n", THIS_MODULE->name);
 #endif
-#ifdef XPP_EC_CHUNK
-	INFO("FEATURE: %s (with XPP_EC_CHUNK)\n", THIS_MODULE->name);
-#else
-	INFO("FEATURE: %s (without XPP_EC_CHUNK)\n", THIS_MODULE->name);
-#endif
+	if (xpp_ec)
+		INFO("FEATURE: %s (with XPP_EC_CHUNK)\n", THIS_MODULE->name);
+	else
+		INFO("FEATURE: %s (without XPP_EC_CHUNK)\n", THIS_MODULE->name);
 #ifdef CONFIG_ZAPATA_BRI_DCHANS
 	INFO("FEATURE: %s (with BRISTUFF support)\n", THIS_MODULE->name);
 #else



More information about the svn-commits mailing list