[zaptel-commits] kpfleming: branch 1.2 r2076 - in /branches/1.2: ./
build_tools/ hpec/ wct4xxp...
zaptel-commits at lists.digium.com
zaptel-commits at lists.digium.com
Wed Jan 31 17:55:42 MST 2007
Author: kpfleming
Date: Wed Jan 31 18:55:41 2007
New Revision: 2076
URL: http://svn.digium.com/view/zaptel?view=rev&rev=2076
Log:
add support for Digium's High Performance Echo Canceller
rework the top-level Makefile so kernel 2.6 modules are built by a dedicated Makefile
Added:
branches/1.2/Makefile.kernel26
- copied unchanged from r2075, betas/1.2-hpec/Makefile.kernel26
branches/1.2/hpec/ (props changed)
- copied from r2075, betas/1.2-hpec/hpec/
branches/1.2/hpec/hpec.h
- copied unchanged from r2075, betas/1.2-hpec/hpec/hpec.h
branches/1.2/hpec/hpec_user.h
- copied unchanged from r2075, betas/1.2-hpec/hpec/hpec_user.h
branches/1.2/hpec/hpec_zaptel.h
- copied unchanged from r2075, betas/1.2-hpec/hpec/hpec_zaptel.h
branches/1.2/wct4xxp/Makefile.kernel26
- copied unchanged from r2075, betas/1.2-hpec/wct4xxp/Makefile.kernel26
branches/1.2/wctc4xxp/Makefile.kernel26
- copied unchanged from r2074, branches/1.2/wctc4xxp/Kbuild
branches/1.2/zaptel-base.c
- copied unchanged from r2075, betas/1.2-hpec/zaptel-base.c
Removed:
branches/1.2/wct4xxp/Kbuild
branches/1.2/wctc4xxp/Kbuild
branches/1.2/zaptel.c
Modified:
branches/1.2/Makefile
branches/1.2/build_tools/make_svn_branch_name
branches/1.2/kb1ec.h
branches/1.2/mec.h
branches/1.2/mec2.h
branches/1.2/mec3.h
branches/1.2/mg2ec.h
branches/1.2/sec-2.h
branches/1.2/sec.h
branches/1.2/tor2.c
branches/1.2/wct1xxp.c
branches/1.2/wct4xxp/Makefile
branches/1.2/wctc4xxp/Makefile
branches/1.2/zaptel.h
branches/1.2/zconfig.h
Modified: branches/1.2/Makefile
URL: http://svn.digium.com/view/zaptel/branches/1.2/Makefile?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/Makefile (original)
+++ branches/1.2/Makefile Wed Jan 31 18:55:41 2007
@@ -1,15 +1,17 @@
#
# Makefile for Zaptel driver modules and utilities
#
-# Copyright (C) 2001-2006 Digium, Inc.
-#
-#
-
-
-HOSTCC=gcc
+# Copyright (C) 2001-2007 Digium, Inc.
+#
+#
+
+CFLAGS+=-DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
+
+ifeq ($(MAKELEVEL),0)
PWD:=$(shell pwd)
-
-INSTALL_PREFIX:=$(DESTDIR)
+endif
+
+ARCH:=$(shell uname -m | sed -e s/i.86/i386/)
# If you want to build for a kernel other than the current kernel, set KVERS
ifndef KVERS
@@ -25,7 +27,69 @@
endif
KINCLUDES:=$(KSRC)/include
-CFLAGS+=-I. -O4 -g -Wall -DBUILDING_TONEZONE #-DTONEZONE_DRIVER
+ifeq (2.6,$(shell echo $(KVERS) | cut -d. -f1-2))
+ BUILDVER:=linux26
+else
+ BUILDVER:=linux24
+endif
+
+ifeq ($(BUILDVER),linux26)
+ ifneq (,$(wildcard $(INSTALL_PREFIX)/etc/udev/rules.d))
+ DYNFS=yes
+ UDEVRULES=yes
+ endif
+ HOTPLUG_FIRMWARE:=$(shell if grep CONFIG_FW_LOADER $(KINCLUDES)/linux/autoconf.h | grep -q undef; then echo "no"; else echo "yes"; fi)
+endif
+
+# Set this to override hotplug firmware loading and revert to embedded firmware
+HOTPLUG_FIRMWARE?=yes
+
+ifeq ($(HOTPLUG_FIRMWARE),yes)
+ CFLAGS+=-DHOTPLUG_FIRMWARE
+endif
+
+MODULES:=zaptel tor2 torisa wcusb wcfxo wctdm wctdm24xxp \
+ ztdynamic ztd-eth wct1xxp wcte11xp pciradio \
+ ztd-loc # ztdummy
+#MODULES+=wcfxsusb
+ifeq ($(BUILDVER),linux26)
+MODULES+=ztdummy zttranscode
+endif
+MODULE_ALIASES=wcfxs wctdm8xxp wct2xxp
+
+MODULESO:=$(MODULES:%=%.o)
+MODULESKO:=$(MODULES:%=%.ko)
+
+# add this later, so it doesn't become part of MODULESO/MODULESKO
+MODULES+=wct4xxp wctc4xxp
+
+ifeq ($(ARCH),i386)
+ifneq ($(wildcard $(PWD)/hpec/hpec_x86_32.o_shipped),)
+HPEC_PRESENT=yes
+endif
+endif
+
+ifeq ($(ARCH),x86_64)
+ifneq ($(wildcard $(PWD)/hpec/hpec_x86_64.o_shipped),)
+HPEC_PRESENT=yes
+endif
+endif
+
+#NOTE NOTE NOTE
+#
+# all variables set before the include of Kbuild are needed by the 2.6 kernel module build process
+
+ifneq ($(KBUILD_EXTMOD),)
+
+include $(src)/Makefile.kernel26
+
+else
+
+HOSTCC=gcc
+
+INSTALL_PREFIX:=$(DESTDIR)
+
+CFLAGS+=-I. -O4 -g -Wall
CFLAGS_PPC:=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi)
CFLAGS_X86-64:=$(shell if uname -m | grep -q x86_64; then echo "-m64"; fi)
CFLAGS+=$(CFLAGS_PPC) $(CFLAGS_X86-64)
@@ -45,32 +109,17 @@
#
KFLAGS+=-DSTANDALONE_ZAPATA
-CFLAGS+=-DSTANDALONE_ZAPATA
KMAKE:= $(MAKE) -C $(KSRC) SUBDIRS=$(PWD)
KMAKE_INST:= $(KMAKE) INSTALL_MOD_PATH=$(INSTALL_PREFIX) INSTALL_MOD_DIR=misc modules_install
CONFIG_FILE:=$(INSTALL_PREFIX)/etc/zaptel.conf
CFLAGS+=-DZAPTEL_CONFIG=\"$(CONFIG_FILE)\"
-
-ifeq (2.6,$(shell echo $(KVERS) | cut -d. -f1-2))
- BUILDVER:=linux26
-else
- BUILDVER:=linux24
-endif
ifeq ($(BUILDVER),linux24)
#We only support DEVFS in linux 2.4 kernels, since its considered obsolete post 2.4
DYNFS:=$(shell ps ax | grep -v grep | grep -q devfsd && echo "yes")
endif
-ifeq ($(BUILDVER),linux26)
- ifneq (,$(wildcard $(INSTALL_PREFIX)/etc/udev/rules.d))
- DYNFS=yes
- UDEVRULES=yes
- endif
- HOTPLUG_FIRMWARE:=$(shell if grep CONFIG_FW_LOADER $(KINCLUDES)/linux/autoconf.h | grep -q undef; then echo "no"; else echo "yes"; fi)
-endif
-
CHKCONFIG:=$(shell sh -c 'type -p chkconfig' 2> /dev/null)
ifndef CHKCONFIG
CHKCONFIG:=:
@@ -80,22 +129,8 @@
ZAPTELVERSION:=$(shell cat .version)
endif
-# Set this to override hotplug firmware loading and revert to classic header based
-#HOTPLUG_FIRMWARE=no
-
-ifeq ($(HOTPLUG_FIRMWARE),yes)
- CFLAGS+=-DHOTPLUG_FIRMWARE
-endif
-
-# CVS mirrors of SVN have .svnrevision files showing
-# which SVN revision they are based on, and .svnbranch
-# showing the branch they are made from
-ifneq ($(wildcard .svnrevision),)
- ZAPTELVERSION:=SVN-$(shell cat .svnbranch)-r$(shell cat .svnrevision)
-else
- ifneq ($(wildcard .svn),)
- ZAPTELVERSION=SVN-$(shell build_tools/make_svn_branch_name)
- endif
+ifneq ($(wildcard .svn),)
+ ZAPTELVERSION=SVN-$(shell build_tools/make_svn_branch_name)
endif
TZOBJS:=zonedata.lo tonezone.lo
@@ -103,53 +138,42 @@
LIBTONEZONE_SO_MAJOR_VER:=1
LIBTONEZONE_SO_MINOR_VER:=0
-MODULES:=zaptel tor2 torisa wcusb wcfxo wctdm wctdm24xxp \
- ztdynamic ztd-eth wct1xxp wcte11xp pciradio \
- ztd-loc # ztdummy
-#MODULES+=wcfxsusb
+MOD_DESTDIR:=zaptel
+
+BINS=ztcfg torisatool makefw ztmonitor ztspeed zttest fxotune
+ifneq (,$(wildcard /usr/include/newt.h))
+BINS+=zttool
+endif
+
+ifeq ($(BUILDVER),linux24)
+all: prereq $(MODULESO) wct4xxp/wct4xxp.o $(BINS) $(LIBTONEZONE_SO)
+endif
+
ifeq ($(BUILDVER),linux26)
-MODULES+=ztdummy zttranscode
-endif
-MODULE_ALIASES=wcfxs wctdm8xxp wct2xxp
-
-MODULESO:=$(MODULES:%=%.o)
-MODULESKO:=$(MODULES:%=%.ko)
-
-MOD_DESTDIR:=zaptel
-
-obj-m:=$(MODULESO)
-obj-m+=wct4xxp/ wctc4xxp/
-MODULES+=wct4xxp wctc4xxp
-
-# Also build xpp in the subdirectory xpp/ . But only for >=2.6.10 and only
-# for i386. On other archs the module will probably build but panic.
-# This line is only meaningful when this Makefile is used as kconfig for
-# 2.6 build
-
-ifneq (,$(shell [ 0$(SUBLEVEL) -ge 8 ] && echo 1))
-obj-m+=xpp/
-endif
-
-ifneq (,$(wildcard /usr/include/newt.h))
-ZTTOOL:=zttool
-endif
-BINS=ztcfg torisatool makefw ztmonitor ztspeed $(ZTTOOL) zttest fxotune
-
-all: $(BUILDVER) $(LIBTONEZONE_SO)
-
-linux24: prereq $(MODULESO) wct4xxp/wct4xxp.o $(BINS)
-
-linux26: prereq $(BINS)
- @echo $(KSRC)
+all: prereq $(BINS) $(LIBTONEZONE_SO)
@if [ -z "$(KSRC)" -o ! -d "$(KSRC)" ]; then echo "You do not appear to have the sources for the $(KVERS) kernel installed."; exit 1 ; fi
$(MAKE) -C $(KSRC) SUBDIRS=$(PWD) HOTPLUG_FIRMWARE=$(HOTPLUG_FIRMWARE) modules
+endif
+
+ifeq ($(HPEC_PRESENT),yes)
+ifeq ($(ARCH),i386)
+ZAPTEL_HPEC:=hpec/hpec_x86_32.o_shipped
+endif
+
+ifeq ($(ARCH),x86_64)
+ZAPTEL_HPEC:=hpec/hpec_x86_64.o_shipped
+endif
+
+CFLAGS+=-DECHO_CAN_HPEC -I$(PWD)/hpec
+zaptel-base.o: hpec/hpec_zaptel.h hpec/hpec_user.h
+endif
version.h: FORCE
- ZAPTELVERSION="${ZAPTELVERSION}" build_tools/make_version_h > $@.tmp
- if cmp -s $@.tmp $@ ; then echo; else \
+ @ZAPTELVERSION="${ZAPTELVERSION}" build_tools/make_version_h > $@.tmp
+ @if cmp -s $@.tmp $@ ; then echo; else \
mv $@.tmp $@ ; \
fi
- rm -f $@.tmp
+ @rm -f $@.tmp
wct4xxp/wct4xxp.o:
$(MAKE) -C wct4xxp KFLAGS="$(KFLAGS) -I.." CFLAGS="$(CFLAGS) -I.."
@@ -159,9 +183,11 @@
tests: patgen pattest patlooptest hdlcstress hdlctest hdlcgen hdlcverify timertest
$(MAKE) -C wctc4xxp tests CFLAGS="$(CFLAGS) -I.."
+$(MODULESO): zaptel.h
+
tor2.o: tor2-hw.h tor2fw.h
-zaptel.o: digits.h arith.h sec.h mec.h sec-2.h mec2.h mec3.h zconfig.h version.h
+zaptel-base.o: digits.h arith.h sec.h sec-2.h mec.h mec2.h mec3.h mg2ec.h kb1ec.h zconfig.h version.h tones.h
torisa.o: torisa.h
@@ -177,7 +203,10 @@
ztdummy.o: ztdummy.h
-$(MODULESO): %.o: %.c zaptel.h
+zaptel.o: zaptel-base.o $(ZAPTEL_HPEC)
+ $(LD) -r -o $@ $< $(ZAPTEL_HPEC)
+
+$(filter-out zaptel.o,$(MODULESO)) zaptel-base.o: %.o: %.c
$(CC) $(KFLAGS) -o $@ -c $<
tor2ee.o: tor2-hw.h
@@ -205,8 +234,6 @@
gendigits: gendigits.o
$(CC) -o $@ $^ -lm
-
-zaptel.c: tones.h
prereq: tones.h tor2fw.h radfw.h version.h
@@ -428,3 +455,6 @@
rm -rf mISDNuser*
FORCE:
+
+endif
+
Modified: branches/1.2/build_tools/make_svn_branch_name
URL: http://svn.digium.com/view/zaptel/branches/1.2/build_tools/make_svn_branch_name?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/build_tools/make_svn_branch_name (original)
+++ branches/1.2/build_tools/make_svn_branch_name Wed Jan 31 18:55:41 2007
@@ -1,6 +1,7 @@
#!/bin/sh
PARTS=`LANG=C svn info | grep URL | awk '{print $2;}' | sed -e s:^.*/svn/zaptel/:: | sed -e 's:/: :g'`
+BETA=0
BRANCH=0
TEAM=0
@@ -14,6 +15,12 @@
for PART in $PARTS
do
+ if [ ${BETA} != 0 ]
+ then
+ RESULT="${RESULT}-${PART}"
+ break
+ fi
+
if [ ${BRANCH} != 0 ]
then
RESULT="${RESULT}-${PART}"
@@ -23,6 +30,13 @@
if [ ${TEAM} != 0 ]
then
RESULT="${RESULT}-${PART}"
+ continue
+ fi
+
+ if [ "${PART}" = "betas" ]
+ then
+ BETA=1
+ RESULT="beta"
continue
fi
Propchange: branches/1.2/hpec/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Jan 31 18:55:41 2007
@@ -1,0 +1,1 @@
+*.o_shipped
Modified: branches/1.2/kb1ec.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/kb1ec.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/kb1ec.h (original)
+++ branches/1.2/kb1ec.h Wed Jan 31 18:55:41 2007
@@ -74,7 +74,7 @@
} echo_can_cb_s;
/* Echo canceller definition */
-typedef struct {
+struct echo_can_state {
/* an arbitrary ID for this echo can - this really should be settable from the calling channel... */
int id;
@@ -139,7 +139,16 @@
int avg_Lu_i_ok;
#endif
-} echo_can_state_t;
+};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: KB1%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void init_cb_s(echo_can_cb_s *cb, int len, void *where)
{
@@ -167,13 +176,13 @@
return cb->buf_d[cb->idx_d + pos];
}
-static inline void init_cc(echo_can_state_t *ec, int N, int maxy, int maxu)
+static inline void init_cc(struct echo_can_state *ec, int N, int maxy, int maxu)
{
void *ptr = ec;
unsigned long tmp;
/* Double-word align past end of state */
- ptr += sizeof(echo_can_state_t);
+ ptr += sizeof(struct echo_can_state);
tmp = (unsigned long)ptr;
tmp += 3;
tmp &= ~3L;
@@ -232,12 +241,12 @@
}
-static inline void echo_can_free(echo_can_state_t *ec)
+static inline void echo_can_free(struct echo_can_state *ec)
{
FREE(ec);
}
-static inline short echo_can_update(echo_can_state_t *ec, short iref, short isig)
+static inline short echo_can_update(struct echo_can_state *ec, short iref, short isig)
{
/* Declare local variables that are used more than once */
@@ -515,9 +524,9 @@
return u;
}
-static inline echo_can_state_t *echo_can_create(int len, int adaption_mode)
-{
- echo_can_state_t *ec;
+static inline struct echo_can_state *echo_can_create(int len, int adaption_mode)
+{
+ struct echo_can_state *ec;
int maxy;
int maxu;
maxy = len + DEFAULT_M;
@@ -528,7 +537,7 @@
maxy = (1 << DEFAULT_SIGMA_LY_I);
if (maxu < (1 << DEFAULT_SIGMA_LU_I))
maxu = (1 << DEFAULT_SIGMA_LU_I);
- ec = (echo_can_state_t *)MALLOC(sizeof(echo_can_state_t) +
+ ec = (struct echo_can_state *)MALLOC(sizeof(struct echo_can_state) +
4 + /* align */
sizeof(int) * len + /* a_i */
sizeof(short) * len + /* a_s */
@@ -537,7 +546,7 @@
2 * sizeof(short) * (maxu) + /* u_s */
2 * sizeof(short) * len); /* y_tilde_s */
if (ec) {
- memset(ec, 0, sizeof(echo_can_state_t) +
+ memset(ec, 0, sizeof(struct echo_can_state) +
4 + /* align */
sizeof(int) * len + /* a_i */
sizeof(short) * len + /* a_s */
@@ -550,7 +559,7 @@
return ec;
}
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Set the hangover counter to the length of the can to
* avoid adjustments occuring immediately after initial forced training
Modified: branches/1.2/mec.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/mec.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/mec.h (original)
+++ branches/1.2/mec.h Wed Jan 31 18:55:41 2007
@@ -53,7 +53,7 @@
#define HANG_T 600 /* 600 samples, or 75ms */
-typedef struct mark_ec {
+struct echo_can_state {
/* Circular position */
int cpos;
short y[NUM_TAPS]; /* Last N samples (relative to cpos) transmitted */
@@ -80,7 +80,7 @@
int lastmax; /* Optimize maximum search */
int maxTy; /* Maximum Ty */
-} echo_can_state_t;
+};
#define INLINE inline
@@ -98,11 +98,20 @@
#define FREE(a) free(a)
#endif
-static INLINE echo_can_state_t *echo_can_create(int len, int adaption_mode)
-{
- echo_can_state_t *ec;
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MARK%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
+
+static INLINE struct echo_can_state *echo_can_create(int len, int adaption_mode)
+{
+ struct echo_can_state *ec;
/* Uhm, we're only one length, sorry. */
- ec = MALLOC(sizeof(echo_can_state_t));
+ ec = MALLOC(sizeof(struct echo_can_state));
if (ec)
memset(ec, 0, sizeof(*ec));
return ec;
@@ -111,12 +120,12 @@
#define PASSPOS 32000
#undef PASSPOS
-static INLINE void echo_can_free(echo_can_state_t *ec)
+static INLINE void echo_can_free(struct echo_can_state *ec)
{
FREE(ec);
}
-static INLINE int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
+static INLINE int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx)
{
/* Process a sample, where tx is the near end and rx is the far end + echo */
@@ -292,7 +301,7 @@
return suppr;
}
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Reset hang counter to avoid adjustments after
initial forced training */
Modified: branches/1.2/mec2.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/mec2.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/mec2.h (original)
+++ branches/1.2/mec2.h Wed Jan 31 18:55:41 2007
@@ -51,7 +51,7 @@
// class definition
//
-typedef struct {
+struct echo_can_state {
/* Echo canceller definition */
/* absolute time */
@@ -86,7 +86,16 @@
short max_y_tilde;
int max_y_tilde_pos;
-} echo_can_state_t;
+};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MARK2%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void init_cb_s(echo_can_cb_s *cb, int len, void *where)
{
@@ -112,12 +121,12 @@
return cb->buf_d[cb->idx_d + pos];
}
-static inline void init_cc(echo_can_state_t *ec, int N, int maxy, int maxu) {
+static inline void init_cc(struct echo_can_state *ec, int N, int maxy, int maxu) {
void *ptr = ec;
unsigned long tmp;
/* double-word align past end of state */
- ptr += sizeof(echo_can_state_t);
+ ptr += sizeof(struct echo_can_state);
tmp = (unsigned long)ptr;
tmp += 3;
tmp &= ~3L;
@@ -170,12 +179,12 @@
//
}
-static inline void echo_can_free(echo_can_state_t *ec)
+static inline void echo_can_free(struct echo_can_state *ec)
{
FREE(ec);
}
-static inline short echo_can_update(echo_can_state_t *ec, short iref, short isig) {
+static inline short echo_can_update(struct echo_can_state *ec, short iref, short isig) {
/* declare local variables that are used more than once
*/
@@ -370,9 +379,9 @@
return u;
}
-static inline echo_can_state_t *echo_can_create(int len, int adaption_mode)
-{
- echo_can_state_t *ec;
+static inline struct echo_can_state *echo_can_create(int len, int adaption_mode)
+{
+ struct echo_can_state *ec;
int maxy;
int maxu;
maxy = len + DEFAULT_M;
@@ -383,7 +392,7 @@
maxy = (1 << DEFAULT_SIGMA_LY_I);
if (maxu < (1 << DEFAULT_SIGMA_LU_I))
maxu = (1 << DEFAULT_SIGMA_LU_I);
- ec = (echo_can_state_t *)MALLOC(sizeof(echo_can_state_t) +
+ ec = (struct echo_can_state *)MALLOC(sizeof(struct echo_can_state) +
4 + /* align */
sizeof(int) * len + /* a_i */
sizeof(short) * len + /* a_s */
@@ -392,7 +401,7 @@
2 * sizeof(short) * (maxu) + /* u_s */
2 * sizeof(short) * len); /* y_tilde_s */
if (ec) {
- memset(ec, 0, sizeof(echo_can_state_t) +
+ memset(ec, 0, sizeof(struct echo_can_state) +
4 + /* align */
sizeof(int) * len + /* a_i */
sizeof(short) * len + /* a_s */
@@ -405,7 +414,7 @@
return ec;
}
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Reset hang counter to avoid adjustments after
initial forced training */
Modified: branches/1.2/mec3.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/mec3.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/mec3.h (original)
+++ branches/1.2/mec3.h Wed Jan 31 18:55:41 2007
@@ -69,7 +69,7 @@
int maxexp;
} cbuf_s;
-typedef struct {
+struct echo_can_state {
short a_s[NTAPS]; /* Coefficients in shorts */
int a_i[NTAPS]; /* Coefficients in ints*/
#ifdef DO_BACKUP
@@ -85,9 +85,18 @@
int hcntr; /* Hangtime counter */
int pos; /* Position in curcular buffers */
int backup; /* Backup timer */
-} echo_can_state_t;
-
-static inline void echo_can_free(echo_can_state_t *ec)
+};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MARK3%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
+
+static inline void echo_can_free(struct echo_can_state *ec)
{
FREE(ec);
}
@@ -114,7 +123,7 @@
}
}
-static inline short echo_can_update(echo_can_state_t *ec, short ref, short sig)
+static inline short echo_can_update(struct echo_can_state *ec, short ref, short sig)
{
int x;
short u;
@@ -204,15 +213,15 @@
return u;
}
-static inline echo_can_state_t *echo_can_create(int taps, int adaption_mode)
-{
- echo_can_state_t *ec;
+static inline struct echo_can_state *echo_can_create(int taps, int adaption_mode)
+{
+ struct echo_can_state *ec;
int x;
taps = NTAPS;
- ec = MALLOC(sizeof(echo_can_state_t));
+ ec = MALLOC(sizeof(struct echo_can_state));
if (ec) {
- memset(ec, 0, sizeof(echo_can_state_t));
+ memset(ec, 0, sizeof(struct echo_can_state));
ec->taps = taps;
ec->pos = ec->taps-1;
for (x=0;x<31;x++) {
@@ -225,7 +234,7 @@
return ec;
}
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Reset hang counter to avoid adjustments after
initial forced training */
Modified: branches/1.2/mg2ec.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/mg2ec.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/mg2ec.h (original)
+++ branches/1.2/mg2ec.h Wed Jan 31 18:55:41 2007
@@ -76,7 +76,7 @@
} echo_can_cb_s;
/* Echo canceller definition */
-typedef struct {
+struct echo_can_state {
/* an arbitrary ID for this echo can - this really should be settable from the calling channel... */
int id;
@@ -143,7 +143,16 @@
short lastsig[256];
int lastpos;
-} echo_can_state_t;
+};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: MG2%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
static inline void init_cb_s(echo_can_cb_s *cb, int len, void *where)
{
@@ -171,13 +180,13 @@
return cb->buf_d[cb->idx_d + pos];
}
-static inline void init_cc(echo_can_state_t *ec, int N, int maxy, int maxu)
+static inline void init_cc(struct echo_can_state *ec, int N, int maxy, int maxu)
{
void *ptr = ec;
unsigned long tmp;
/* Double-word align past end of state */
- ptr += sizeof(echo_can_state_t);
+ ptr += sizeof(struct echo_can_state);
tmp = (unsigned long)ptr;
tmp += 3;
tmp &= ~3L;
@@ -236,12 +245,12 @@
}
-static inline void echo_can_free(echo_can_state_t *ec)
+static inline void echo_can_free(struct echo_can_state *ec)
{
FREE(ec);
}
-static inline short echo_can_update(echo_can_state_t *ec, short iref, short isig)
+static inline short echo_can_update(struct echo_can_state *ec, short iref, short isig)
{
/* Declare local variables that are used more than once */
@@ -556,9 +565,9 @@
return u;
}
-static inline echo_can_state_t *echo_can_create(int len, int adaption_mode)
-{
- echo_can_state_t *ec;
+static inline struct echo_can_state *echo_can_create(int len, int adaption_mode)
+{
+ struct echo_can_state *ec;
int maxy;
int maxu;
maxy = len + DEFAULT_M;
@@ -569,7 +578,7 @@
maxy = (1 << DEFAULT_SIGMA_LY_I);
if (maxu < (1 << DEFAULT_SIGMA_LU_I))
maxu = (1 << DEFAULT_SIGMA_LU_I);
- ec = (echo_can_state_t *)MALLOC(sizeof(echo_can_state_t) +
+ ec = (struct echo_can_state *)MALLOC(sizeof(struct echo_can_state) +
4 + /* align */
sizeof(int) * len + /* a_i */
sizeof(short) * len + /* a_s */
@@ -578,7 +587,7 @@
2 * sizeof(short) * (maxu) + /* u_s */
2 * sizeof(short) * len); /* y_tilde_s */
if (ec) {
- memset(ec, 0, sizeof(echo_can_state_t) +
+ memset(ec, 0, sizeof(struct echo_can_state) +
4 + /* align */
sizeof(int) * len + /* a_i */
sizeof(short) * len + /* a_s */
@@ -591,7 +600,7 @@
return ec;
}
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Set the hangover counter to the length of the can to
* avoid adjustments occuring immediately after initial forced training
Modified: branches/1.2/sec-2.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/sec-2.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/sec-2.h (original)
+++ branches/1.2/sec-2.h Wed Jan 31 18:55:41 2007
@@ -67,7 +67,7 @@
#define NONUPDATE_DWELL_TIME 600 /* 600 samples, or 75ms */
-typedef struct
+struct echo_can_state
{
int tx_power;
int rx_power;
@@ -95,11 +95,20 @@
int32_t latest_correction; /* Indication of the magnitude of the latest
adaption, or a code to indicate why adaption
was skipped, for test purposes */
-} echo_can_state_t;
-
-static echo_can_state_t *echo_can_create(int len, int adaption_mode);
-static void echo_can_free(echo_can_state_t *ec);
-static int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx);
+};
+
+static struct echo_can_state *echo_can_create(int len, int adaption_mode);
+static void echo_can_free(struct echo_can_state *ec);
+static int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx);
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: STEVE2%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
/*
* According to Jim...
@@ -113,12 +122,12 @@
/* #define MIN_TX_POWER_FOR_ADAPTION 4096
#define MIN_RX_POWER_FOR_ADAPTION 64 */
-static inline echo_can_state_t *echo_can_create(int len, int adaption_mode)
-{
- echo_can_state_t *ec;
+static inline struct echo_can_state *echo_can_create(int len, int adaption_mode)
+{
+ struct echo_can_state *ec;
void *ptr;
- ptr = ec = (echo_can_state_t *) MALLOC(sizeof(*ec) + len * sizeof(int32_t) +
+ ptr = ec = (struct echo_can_state *) MALLOC(sizeof(*ec) + len * sizeof(int32_t) +
len * sizeof(int16_t));
if (ec == NULL)
return NULL;
@@ -139,14 +148,14 @@
}
/*- End of function --------------------------------------------------------*/
-static inline void echo_can_free(echo_can_state_t *ec)
+static inline void echo_can_free(struct echo_can_state *ec)
{
fir16_free(&ec->fir_state);
FREE(ec);
}
/*- End of function --------------------------------------------------------*/
-static inline int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
+static inline int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx)
{
int offset1;
int offset2;
@@ -278,7 +287,7 @@
}
#if 0
-static inline int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
+static inline int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx)
{
int offset;
int limit;
@@ -412,7 +421,7 @@
/*- End of function --------------------------------------------------------*/
#endif
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Reset hang counter to avoid adjustments after
initial forced training */
Modified: branches/1.2/sec.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/sec.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/sec.h (original)
+++ branches/1.2/sec.h Wed Jan 31 18:55:41 2007
@@ -70,7 +70,7 @@
#define NONUPDATE_DWELL_TIME 600 /* 600 samples, or 75ms */
-typedef struct
+struct echo_can_state
{
int tx_power;
int rx_power;
@@ -98,11 +98,20 @@
int32_t latest_correction; /* Indication of the magnitude of the latest
adaption, or a code to indicate why adaption
was skipped, for test purposes */
-} echo_can_state_t;
-
-static echo_can_state_t *echo_can_create(int len, int adaption_mode);
-static void echo_can_free(echo_can_state_t *ec);
-static int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx);
+};
+
+static void echo_can_init(void)
+{
+ printk("Zaptel Echo Canceller: STEVE%s\n", ZAPTEL_ECHO_AGGRESSIVE);
+}
+
+static void echo_can_shutdown(void)
+{
+}
+
+static struct echo_can_state *echo_can_create(int len, int adaption_mode);
+static void echo_can_free(struct echo_can_state *ec);
+static int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx);
/* Original parameters :
#define MIN_TX_POWER_FOR_ADAPTION 256
@@ -117,12 +126,12 @@
#define MIN_RX_POWER_FOR_ADAPTION 64
*/
-static inline echo_can_state_t *echo_can_create(int len, int adaption_mode)
-{
- echo_can_state_t *ec;
+static inline struct echo_can_state *echo_can_create(int len, int adaption_mode)
+{
+ struct echo_can_state *ec;
void *ptr;
- ptr = ec = (echo_can_state_t *) MALLOC(sizeof(*ec) + len * sizeof(int32_t) +
+ ptr = ec = (struct echo_can_state *) MALLOC(sizeof(*ec) + len * sizeof(int32_t) +
len * 3 * sizeof(int16_t));
if (ec == NULL)
return NULL;
@@ -141,13 +150,13 @@
}
/*- End of function --------------------------------------------------------*/
-static inline void echo_can_free(echo_can_state_t *ec)
+static inline void echo_can_free(struct echo_can_state *ec)
{
FREE(ec);
}
/*- End of function --------------------------------------------------------*/
-static inline int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx)
+static inline int16_t echo_can_update(struct echo_can_state *ec, int16_t tx, int16_t rx)
{
int32_t echo_value;
int clean_rx;
@@ -268,7 +277,7 @@
}
/*- End of function --------------------------------------------------------*/
-static inline int echo_can_traintap(echo_can_state_t *ec, int pos, short val)
+static inline int echo_can_traintap(struct echo_can_state *ec, int pos, short val)
{
/* Reset hang counter to avoid adjustments after
initial forced training */
Modified: branches/1.2/tor2.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/tor2.c?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/tor2.c (original)
+++ branches/1.2/tor2.c Wed Jan 31 18:55:41 2007
@@ -23,8 +23,6 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id$
*/
#include <linux/kernel.h>
Modified: branches/1.2/wct1xxp.c
URL: http://svn.digium.com/view/zaptel/branches/1.2/wct1xxp.c?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/wct1xxp.c (original)
+++ branches/1.2/wct1xxp.c Wed Jan 31 18:55:41 2007
@@ -22,8 +22,6 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id$
*/
#include <linux/kernel.h>
Modified: branches/1.2/wct4xxp/Makefile
URL: http://svn.digium.com/view/zaptel/branches/1.2/wct4xxp/Makefile?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/wct4xxp/Makefile (original)
+++ branches/1.2/wct4xxp/Makefile Wed Jan 31 18:55:41 2007
@@ -1,6 +1,6 @@
ifneq ($(KBUILD_EXTMOD),)
-include $(obj)/Kbuild
+include $(src)/Makefile.kernel26
else
Modified: branches/1.2/wctc4xxp/Makefile
URL: http://svn.digium.com/view/zaptel/branches/1.2/wctc4xxp/Makefile?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/wctc4xxp/Makefile (original)
+++ branches/1.2/wctc4xxp/Makefile Wed Jan 31 18:55:41 2007
@@ -1,6 +1,6 @@
ifneq ($(KBUILD_EXTMOD),)
-include $(obj)/Kbuild
+include $(obj)/Makefile.kernel26
endif
Modified: branches/1.2/zaptel.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/zaptel.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/zaptel.h (original)
+++ branches/1.2/zaptel.h Wed Jan 31 18:55:41 2007
@@ -23,8 +23,6 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * $Id$
*/
#ifndef _LINUX_ZAPTEL_H
@@ -170,38 +168,6 @@
#define ZT_POLICY_WHEN_FULL 1 /* Start play/record when buffer is full */
#define RING_DEBOUNCE_TIME 2000 /* 2000 ms ring debounce time */
-
-#ifdef AGGRESSIVE_SUPPRESSOR
-#define ZAPTEL_ECHO_AGGRESSIVE " (aggressive)"
-#else
-#define ZAPTEL_ECHO_AGGRESSIVE
-#endif
-
-#ifdef __KERNEL__
-/* Echo cancellation */
-#if defined(ECHO_CAN_STEVE)
-#define ZAPTEL_ECHO_CANCELLER "STEVE"
-#include "sec.h"
-#elif defined(ECHO_CAN_STEVE2)
-#define ZAPTEL_ECHO_CANCELLER "STEVE2"
-#include "sec-2.h"
-#elif defined(ECHO_CAN_MARK)
-#define ZAPTEL_ECHO_CANCELLER "MARK"
-#include "mec.h"
-#elif defined(ECHO_CAN_MARK2)
-#define ZAPTEL_ECHO_CANCELLER "MARK2"
-#include "mec2.h"
-#elif defined(ECHO_CAN_KB1)
-#define ZAPTEL_ECHO_CANCELLER "KB1"
-#include "kb1ec.h"
-#elif defined(ECHO_CAN_MG2)
-#define ZAPTEL_ECHO_CANCELLER "MG2"
-#include "mg2ec.h"
-#else
-#define ZAPTEL_ECHO_CANCELLER "MARK3"
-#include "mec3.h"
-#endif
-#endif
#define ZT_GET_PARAMS_RETURN_MASTER 0x40000000
@@ -1021,8 +987,20 @@
#endif
struct zt_chan *chan;
};
-
#endif /* CONFIG_ZAPATA_NET */
+
+/* Echo cancellation */
+struct echo_can_state;
+#if 0
+/* echo can API consists of these functions */
+void echo_can_init(void);
+void echo_chan_shutdown(void);
+struct echo_can_state *echo_can_create(int len, int adaption_mode);
+void echo_can_free(struct echo_can_state *ec);
+short echo_can_update(struct echo_can_state *ec, short iref, short isig);
+void echo_can_array_update(struct echo_can_state *ec, short *iref, short *isig);
+int echo_can_traintap(struct echo_can_state *ec, int pos, short val);
+#endif
/* Conference queue stucture */
struct confq {
@@ -1187,7 +1165,7 @@
/* Is echo cancellation enabled or disabled */
int echocancel;
- echo_can_state_t *ec;
+ struct echo_can_state *ec;
echo_can_disable_detector_state_t txecdis;
echo_can_disable_detector_state_t rxecdis;
Modified: branches/1.2/zconfig.h
URL: http://svn.digium.com/view/zaptel/branches/1.2/zconfig.h?view=diff&rev=2076&r1=2075&r2=2076
==============================================================================
--- branches/1.2/zconfig.h (original)
+++ branches/1.2/zconfig.h Wed Jan 31 18:55:41 2007
@@ -45,7 +45,7 @@
/* #define CONFIG_ZAPTEL_MMX */
/*
- * Pick your echo canceller: MARK2, MARK3, STEVE, or STEVE2 :)
+ * Pick your echo canceller.
*
*/
/* #define ECHO_CAN_STEVE */
More information about the zaptel-commits
mailing list