···276276 kfree(ec);277277 return NULL;278278}279279-280279EXPORT_SYMBOL_GPL(oslec_create);281280282281void oslec_free(struct oslec_state *ec)···289290 kfree(ec->snapshot);290291 kfree(ec);291292}292292-293293EXPORT_SYMBOL_GPL(oslec_free);294294295295void oslec_adaption_mode(struct oslec_state *ec, int adaption_mode)296296{297297 ec->adaption_mode = adaption_mode;298298}299299-300299EXPORT_SYMBOL_GPL(oslec_adaption_mode);301300302301void oslec_flush(struct oslec_state *ec)···321324 ec->curr_pos = ec->taps - 1;322325 ec->Pstates = 0;323326}324324-325327EXPORT_SYMBOL_GPL(oslec_flush);326328327329void oslec_snapshot(struct oslec_state *ec)328330{329331 memcpy(ec->snapshot, ec->fir_taps16[0], ec->taps * sizeof(int16_t));330332}331331-332333EXPORT_SYMBOL_GPL(oslec_snapshot);333334334335/* Dual Path Echo Canceller */···401406 /* efficient "out with the old and in with the new" algorithm so402407 we don't have to recalculate over the whole block of403408 samples. */404404- new = (int)tx *(int)tx;409409+ new = (int)tx * (int)tx;405410 old = (int)ec->fir_state.history[ec->fir_state.curr_pos] *406411 (int)ec->fir_state.history[ec->fir_state.curr_pos];407412 ec->Pstates +=···598603599604 return (int16_t) ec->clean_nlp << 1;600605}601601-602606EXPORT_SYMBOL_GPL(oslec_update);603607604608/* This function is separated from the echo canceller is it is usually called···622628 giving very clean DC removal.623629*/624630625625-int16_t oslec_hpf_tx(struct oslec_state * ec, int16_t tx)631631+int16_t oslec_hpf_tx(struct oslec_state *ec, int16_t tx)626632{627633 int tmp, tmp1;628634···651657652658 return tx;653659}654654-655660EXPORT_SYMBOL_GPL(oslec_hpf_tx);656661657662MODULE_LICENSE("GPL");