summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2008-09-28 06:43:51 +0000
committerShaun Ruffell <sruffell@digium.com>2008-09-28 06:43:51 +0000
commit01c1ed9a15ca81e2732c801c6697491046a0db9d (patch)
tree7fd2a5afe48a45c291739412ed511ddfa17169b0
parentfe97d6eadaf396c69e659e50ccfe548b0ed585fa (diff)
Fixes failure of modular echo cancelers in DAHDI.
Reported by lots of people, fix suggested by mattf. git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@5002 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/dahdi-base.c2
-rw-r--r--drivers/dahdi/dahdi_echocan_kb1.c1
-rw-r--r--drivers/dahdi/dahdi_echocan_mg2.c1
-rw-r--r--drivers/dahdi/dahdi_echocan_sec.c1
-rw-r--r--drivers/dahdi/dahdi_echocan_sec2.c1
5 files changed, 5 insertions, 1 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
index b9661aa..34668cf 100644
--- a/drivers/dahdi/dahdi-base.c
+++ b/drivers/dahdi/dahdi-base.c
@@ -6484,7 +6484,7 @@ static inline void __dahdi_ec_chunk(struct dahdi_chan *ss, unsigned char *rxchun
rxlins[x] = DAHDI_XLAW(rxchunk[x], ss);
txlins[x] = DAHDI_XLAW(txchunk[x], ss);
}
- ss->ec_current->echo_can_array_update(ss->ec_state, rxlins, txlins);
+ ss->ec_current->echo_can_array_update(ss->ec_state, txlins, rxlins);
for (x = 0; x < DAHDI_CHUNKSIZE; x++)
rxchunk[x] = DAHDI_LIN2X((int) rxlins[x], ss);
}
diff --git a/drivers/dahdi/dahdi_echocan_kb1.c b/drivers/dahdi/dahdi_echocan_kb1.c
index 2291261..b610d45 100644
--- a/drivers/dahdi/dahdi_echocan_kb1.c
+++ b/drivers/dahdi/dahdi_echocan_kb1.c
@@ -591,6 +591,7 @@ static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
for (x = 0; x < DAHDI_CHUNKSIZE; x++) {
result = sample_update(ec, *iref, *isig);
*isig++ = result;
+ ++iref;
}
}
diff --git a/drivers/dahdi/dahdi_echocan_mg2.c b/drivers/dahdi/dahdi_echocan_mg2.c
index c73001d..b365f78 100644
--- a/drivers/dahdi/dahdi_echocan_mg2.c
+++ b/drivers/dahdi/dahdi_echocan_mg2.c
@@ -728,6 +728,7 @@ static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
for (x = 0; x < DAHDI_CHUNKSIZE; x++) {
result = sample_update(ec, *iref, *isig);
*isig++ = result;
+ ++iref;
}
}
diff --git a/drivers/dahdi/dahdi_echocan_sec.c b/drivers/dahdi/dahdi_echocan_sec.c
index af85ca4..5dc80e0 100644
--- a/drivers/dahdi/dahdi_echocan_sec.c
+++ b/drivers/dahdi/dahdi_echocan_sec.c
@@ -280,6 +280,7 @@ static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
for (x = 0; x < DAHDI_CHUNKSIZE; x++) {
result = sample_update(ec, *iref, *isig);
*isig++ = result;
+ ++iref;
}
}
/*- End of function --------------------------------------------------------*/
diff --git a/drivers/dahdi/dahdi_echocan_sec2.c b/drivers/dahdi/dahdi_echocan_sec2.c
index 656a4e1..fa19b4c 100644
--- a/drivers/dahdi/dahdi_echocan_sec2.c
+++ b/drivers/dahdi/dahdi_echocan_sec2.c
@@ -287,6 +287,7 @@ static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
for (x = 0; x < DAHDI_CHUNKSIZE; x++) {
result = sample_update(ec, *iref, *isig);
*isig++ = result;
+ ++iref;
}
}
/*- End of function --------------------------------------------------------*/