summaryrefslogtreecommitdiff
path: root/drivers/dahdi/dahdi_echocan_oslec.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/dahdi_echocan_oslec.c')
-rw-r--r--drivers/dahdi/dahdi_echocan_oslec.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/dahdi/dahdi_echocan_oslec.c b/drivers/dahdi/dahdi_echocan_oslec.c
index b0c7779..aa63599 100644
--- a/drivers/dahdi/dahdi_echocan_oslec.c
+++ b/drivers/dahdi/dahdi_echocan_oslec.c
@@ -46,7 +46,14 @@ static void echo_can_free(struct echo_can_state *ec)
static void echo_can_update(struct echo_can_state *ec, short *iref, short *isig)
{
- oslec_update((struct oslec_state *)ec, *iref, *isig);
+ unsigned int SampleNum;
+
+ for (SampleNum = 0; SampleNum < DAHDI_CHUNKSIZE; SampleNum++, iref++)
+ {
+ short iCleanSample;
+ iCleanSample = (short) oslec_update((struct oslec_state *)ec, *iref, *isig);
+ *isig++ = iCleanSample;
+ }
}
static int echo_can_create(struct dahdi_echocanparams *ecp, struct dahdi_echocanparam *p,
@@ -57,8 +64,7 @@ static int echo_can_create(struct dahdi_echocanparams *ecp, struct dahdi_echocan
return -EINVAL;
}
- /* TODO: get adaption mode from EC parameters? */
- *ec = (struct echo_can_state *)oslec_create(ecp->tap_length, 0);
+ *ec = (struct echo_can_state *)oslec_create(ecp->tap_length, ECHO_CAN_USE_ADAPTION | ECHO_CAN_USE_NLP | ECHO_CAN_USE_CLIP | ECHO_CAN_USE_TX_HPF | ECHO_CAN_USE_RX_HPF);
return *ec ? 0 : -ENOTTY;
}