[svn-commits] kpfleming: linux/trunk r5936 - in /linux/trunk: drivers/dahdi/ drivers/dahdi/...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Mon Feb 2 08:13:50 CST 2009


Author: kpfleming
Date: Mon Feb  2 08:13:50 2009
New Revision: 5936

URL: http://svn.digium.com/svn-view/dahdi?view=rev&rev=5936
Log:
Array-style echo canceller updates first appeared in Zaptel, because HPEC only supports that mode. However, when the function for doing array-style updates was written, the argument names were reversed. In Zaptel this did no harm, because HPEC was the only module that used array-style updates.

When DAHDI was created, non-array-style updates were removed, and the existing modules were converted to using array-style updates. Unfortunately the new code was written based on the argument names, which were incorrect. This caused all the echo cancellers to be broken (except HPEC, although we did not know that at the time), and it was corrected by reversing the order of the arguments passed when the array-style update function was called (leading to a confusing mismatch). This fixed all the non-HPEC modules, but left HPEC broken, which was just discovered.

This commit corrects all these problems, so that the argument names and the data passed actually make sense, and all the modules work properly.


Modified:
    linux/trunk/drivers/dahdi/dahdi-base.c
    linux/trunk/drivers/dahdi/dahdi_echocan_jpah.c
    linux/trunk/drivers/dahdi/dahdi_echocan_kb1.c
    linux/trunk/drivers/dahdi/dahdi_echocan_mg2.c
    linux/trunk/drivers/dahdi/dahdi_echocan_oslec.c
    linux/trunk/drivers/dahdi/dahdi_echocan_sec.c
    linux/trunk/drivers/dahdi/dahdi_echocan_sec2.c
    linux/trunk/drivers/dahdi/hpec/dahdi_echocan_hpec.c
    linux/trunk/drivers/dahdi/hpec/hpec.h
    linux/trunk/include/dahdi/kernel.h

Modified: linux/trunk/drivers/dahdi/dahdi-base.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi-base.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi-base.c (original)
+++ linux/trunk/drivers/dahdi/dahdi-base.c Mon Feb  2 08:13:50 2009
@@ -6580,7 +6580,7 @@
 				rxlins[x] = DAHDI_XLAW(rxchunk[x], ss);
 				txlins[x] = DAHDI_XLAW(txchunk[x], ss);
 			}
-			ss->ec_current->echo_can_array_update(ss->ec_state, txlins, rxlins);
+			ss->ec_current->echo_can_array_update(ss->ec_state, rxlins, txlins);
 			for (x = 0; x < DAHDI_CHUNKSIZE; x++)
 				rxchunk[x] = DAHDI_LIN2X((int) rxlins[x], ss);
 		}

Modified: linux/trunk/drivers/dahdi/dahdi_echocan_jpah.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi_echocan_jpah.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi_echocan_jpah.c (original)
+++ linux/trunk/drivers/dahdi/dahdi_echocan_jpah.c Mon Feb  2 08:13:50 2009
@@ -71,7 +71,7 @@
 	kfree(ec);
 }
 
-static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_update(struct echo_can_state *ec, short *isig, short *iref)
 {
 	unsigned int x;
 

Modified: linux/trunk/drivers/dahdi/dahdi_echocan_kb1.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi_echocan_kb1.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi_echocan_kb1.c (original)
+++ linux/trunk/drivers/dahdi/dahdi_echocan_kb1.c Mon Feb  2 08:13:50 2009
@@ -583,7 +583,7 @@
 	return u;
 }
 
-static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_update(struct echo_can_state *ec, short *isig, short *iref)
 {
 	unsigned int x;
 	short result;

Modified: linux/trunk/drivers/dahdi/dahdi_echocan_mg2.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi_echocan_mg2.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi_echocan_mg2.c (original)
+++ linux/trunk/drivers/dahdi/dahdi_echocan_mg2.c Mon Feb  2 08:13:50 2009
@@ -724,7 +724,7 @@
 	return u;
 }
 
-static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_update(struct echo_can_state *ec, short *isig, short *iref)
 {
 	unsigned int x;
 	short result;

Modified: linux/trunk/drivers/dahdi/dahdi_echocan_oslec.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi_echocan_oslec.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi_echocan_oslec.c (original)
+++ linux/trunk/drivers/dahdi/dahdi_echocan_oslec.c Mon Feb  2 08:13:50 2009
@@ -44,7 +44,7 @@
 	oslec_free((struct oslec_state *)ec);
 }
 
-static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_update(struct echo_can_state *ec, short *isig, short *iref)
 {
 	unsigned int SampleNum;
 

Modified: linux/trunk/drivers/dahdi/dahdi_echocan_sec.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi_echocan_sec.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi_echocan_sec.c (original)
+++ linux/trunk/drivers/dahdi/dahdi_echocan_sec.c Mon Feb  2 08:13:50 2009
@@ -272,7 +272,7 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_update(struct echo_can_state *ec, short *isig, short *iref)
 {
 	unsigned int x;
 	short result;

Modified: linux/trunk/drivers/dahdi/dahdi_echocan_sec2.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/dahdi_echocan_sec2.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi_echocan_sec2.c (original)
+++ linux/trunk/drivers/dahdi/dahdi_echocan_sec2.c Mon Feb  2 08:13:50 2009
@@ -279,7 +279,7 @@
 }
 /*- End of function --------------------------------------------------------*/
 
-static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_update(struct echo_can_state *ec, short *isig, short *iref)
 {
 	unsigned int x;
 	short result;

Modified: linux/trunk/drivers/dahdi/hpec/dahdi_echocan_hpec.c
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/hpec/dahdi_echocan_hpec.c?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/hpec/dahdi_echocan_hpec.c (original)
+++ linux/trunk/drivers/dahdi/hpec/dahdi_echocan_hpec.c Mon Feb  2 08:13:50 2009
@@ -72,9 +72,9 @@
 	hpec_channel_free(ec);
 }
 
-static void echo_can_array_update(struct echo_can_state *ec, short *iref, short *isig)
+static void echo_can_array_update(struct echo_can_state *ec, short *isig, short *iref)
 {
-	hpec_channel_update(ec, iref, isig);
+	hpec_channel_update(ec, isig, iref);
 }
 
 DECLARE_MUTEX(alloc_lock);

Modified: linux/trunk/drivers/dahdi/hpec/hpec.h
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/drivers/dahdi/hpec/hpec.h?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/drivers/dahdi/hpec/hpec.h (original)
+++ linux/trunk/drivers/dahdi/hpec/hpec.h Mon Feb  2 08:13:50 2009
@@ -40,7 +40,7 @@
 
 void __attribute__((regparm(0))) hpec_channel_free(struct echo_can_state *channel);
 
-void __attribute__((regparm(0))) hpec_channel_update(struct echo_can_state *channel, short *iref, short *isig);
+void __attribute__((regparm(0))) hpec_channel_update(struct echo_can_state *channel, short *isig, short *iref);
 
 #endif /* !defined(_HPEC_H) */
 

Modified: linux/trunk/include/dahdi/kernel.h
URL: http://svn.digium.com/svn-view/dahdi/linux/trunk/include/dahdi/kernel.h?view=diff&rev=5936&r1=5935&r2=5936
==============================================================================
--- linux/trunk/include/dahdi/kernel.h (original)
+++ linux/trunk/include/dahdi/kernel.h Mon Feb  2 08:13:50 2009
@@ -361,7 +361,7 @@
 	struct module *owner;
 	int (*echo_can_create)(struct dahdi_echocanparams *ecp, struct dahdi_echocanparam *p, struct echo_can_state **ec);
 	void (*echo_can_free)(struct echo_can_state *ec);
-	void (*echo_can_array_update)(struct echo_can_state *ec, short *iref, short *isig);
+	void (*echo_can_array_update)(struct echo_can_state *ec, short *isig, short *iref);
 	int (*echo_can_traintap)(struct echo_can_state *ec, int pos, short val);
 };
 




More information about the svn-commits mailing list