diff options
Diffstat (limited to 'package/ifx-tapi')
| -rw-r--r-- | package/ifx-tapi/Config.in | 71 | ||||
| -rw-r--r-- | package/ifx-tapi/Makefile | 70 | ||||
| -rw-r--r-- | package/ifx-tapi/patches/001-portability.patch | 26 | ||||
| -rw-r--r-- | package/ifx-tapi/patches/100-ifxmips.patch | 108 | 
4 files changed, 275 insertions, 0 deletions
| diff --git a/package/ifx-tapi/Config.in b/package/ifx-tapi/Config.in new file mode 100644 index 000000000..56defb3dd --- /dev/null +++ b/package/ifx-tapi/Config.in @@ -0,0 +1,71 @@ +config VOICE_CPE_TAPI_FAX +	bool "fax relay and modem support" +	default n +	help +		Option to enable fax/modem support in TAPI. +		Note: Newer platforms as AR9 and VR9 support a T.38 fax relay stack +		in FW while older platforms like Danube or VINETIC-CPE require a +		separate SW stack executed as an application. + +config VOICE_CPE_TAPI_CID +	bool "CID support" +	default y +	help +		Option to enable Caller ID support. + +config VOICE_CPE_TAPI_LT_GR909 +	bool "Linetesting GR-909 support" +	default y +		help +			Option to enable linetesting GR-909. + +config VOICE_CPE_TAPI_DECT +	bool "DECT encoding for COSIC modem" +	default n +		help +			Option to enable DECT encoding for COSIC modem. + +config VOICE_CPE_TAPI_KPI +	bool "KPI (Kernel Packet Interface)" +	default y +	help +		Option to enable the generic kernel level packet interface +		which allows accelerated packet transfer for various purposes. +		The most important example is the QOS option, which allows +		to redirect RTP packets directly into the IP stack. +		Other options relying on KPI are DECT and HDLC. + +config VOICE_CPE_TAPI_QOS +	bool "QOS for accelerated RTP packet handling" +	default y +	help +		Option to enable an accelerated RTP packet transfer inside +		the LINUX kernel space. This option requires the KPI2UDP +		packet, which actually provides the OS specific hooks in +		the IP stack. + +config VOICE_CPE_TAPI_STATISTICS +	bool "TAPI statistics via /proc fs" +	default y +	help +		Option to enable /proc fs statistics for packet counts etc. + +config VOICE_CPE_TAPI_METERING +	bool "Metering (TTX) support" +	default n +	help +		Option to enable metering (TTX) support. + +config VOICE_CPE_TAPI_HDLC +	bool "PCM HDLC support, evaluation" +	default n +	help +		Option to enable PCM HDLC framing inside the firmware, e.g. for +		ISDN D-Channel access. + +config VOICE_CPE_TAPI_TRACES +	bool "enable driver traces" +	default y +	help +		enable driver traces with different trace levels to be +		configured dynamically from the application or during insmod diff --git a/package/ifx-tapi/Makefile b/package/ifx-tapi/Makefile new file mode 100644 index 000000000..fe91ad015 --- /dev/null +++ b/package/ifx-tapi/Makefile @@ -0,0 +1,70 @@ +# +# Copyright (C) 2008 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=drv_tapi +PKG_VERSION:=3.11.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=drv_tapi-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources +PKG_MD5SUM:=1ffee83ce69f55915468c309d8ae2138 + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/ifx-tapi +  SUBMENU:=Voice over IP +  TITLE:=Lantiq TAPI subsystem +  URL:=http://www.lantiq.com/ +  MAINTAINER:=Lantiq +  DEPENDS:=+kmod-ifxos @BROKEN +  FILES:=$(PKG_BUILD_DIR)/src/drv_tapi.$(LINUX_KMOD_SUFFIX) +  AUTOLOAD:=$(call AutoLoad,20,drv_tapi) +endef + +define KernelPackage/ifx-tapi/description +	Voice Subsystem Telephony API High Level Driver +endef + +define KernelPackage/ifx-tapi/config +	if PACKAGE_kmod-ifx-tapi +		source "$(SOURCE)/Config.in" +	endif +endef + +CONFIGURE_ARGS += \ +	ARCH=$(LINUX_KARCH) \ +	--enable-linux-26 \ +	--enable-kernelbuild="$(LINUX_DIR)" \ +	--enable-kernelincl="$(LINUX_DIR)/include" \ +	--with-ifxos-incl=$(STAGING_DIR)/usr/include/ifxos \ +	$(call autoconf_bool,CONFIG_IFX_DRV_TAPI_EVENT_LOGGER,el-debug) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_FAX,fax t38) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_CID,cid) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_DECT,dect) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_KPI,kpi) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_QOS,qos) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_LT_GR909,lt) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_STATISTICS,statistics) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_METERING,metering) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_HDLC,hdlc) \ +	$(call autoconf_bool,CONFIG_VOICE_CPE_TAPI_TRACES,trace) + +define Build/Configure +	(cd $(PKG_BUILD_DIR); aclocal && autoconf && automake) +	$(call Build/Configure/Default) +endef + +define Build/InstallDev +	$(INSTALL_DIR) $(1)/usr/include/drv_tapi +	$(CP) --dereference $(PKG_BUILD_DIR)/include/* $(1)/usr/include/drv_tapi +	(cd $(1)/usr/include/drv_tapi && ln -s . include && ln -s ../ifxos/ifx_types.h .) +endef + +$(eval $(call KernelPackage,ifx-tapi)) diff --git a/package/ifx-tapi/patches/001-portability.patch b/package/ifx-tapi/patches/001-portability.patch new file mode 100644 index 000000000..807a64b12 --- /dev/null +++ b/package/ifx-tapi/patches/001-portability.patch @@ -0,0 +1,26 @@ +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -149,7 +149,7 @@ if KERNEL_2_6 + drv_tapi_OBJS = "$(subst .c,.o, $(drv_tapi_SOURCES))" +  + drv_tapi.ko: $(drv_tapi_SOURCES) $(EXTRA_DIST) +-	@echo -e "Making Linux 2.6.x kernel object" ++	@echo "Making Linux 2.6.x kernel object" + 	@for f in $(drv_tapi_SOURCES) ; do \ + 		if test ! -e $(PWD)/$$f; then \ + 			echo "  LN      $$f" ; \ +@@ -157,10 +157,10 @@ drv_tapi.ko: $(drv_tapi_SOURCES) $(EXTRA + 			ln -s @abs_srcdir@/$$f $(PWD)/$$f; \ + 		fi; \ + 	done; +-	@echo -e "# drv_tapi: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild +-	@echo -e "obj-m := $(subst .ko,.o,$@)"			>> $(PWD)/Kbuild +-	@echo -e "$(subst .ko,,$@)-y := $(drv_tapi_OBJS)"	>> $(PWD)/Kbuild +-	@echo -e "EXTRA_CFLAGS := -DHAVE_CONFIG_H  $(CFLAGS) $(drv_tapi_CFLAGS) $(INCLUDES)"	>> $(PWD)/Kbuild ++	@echo "# drv_tapi: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild ++	@echo "obj-m := $(subst .ko,.o,$@)"			>> $(PWD)/Kbuild ++	@echo "$(subst .ko,,$@)-y := $(drv_tapi_OBJS)"	>> $(PWD)/Kbuild ++	@echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H  $(CFLAGS) $(drv_tapi_CFLAGS) $(INCLUDES)"	>> $(PWD)/Kbuild + 	$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules +  + clean-generic: diff --git a/package/ifx-tapi/patches/100-ifxmips.patch b/package/ifx-tapi/patches/100-ifxmips.patch new file mode 100644 index 000000000..bce831c08 --- /dev/null +++ b/package/ifx-tapi/patches/100-ifxmips.patch @@ -0,0 +1,108 @@ +--- a/src/drv_tapi_linux.c ++++ b/src/drv_tapi_linux.c +@@ -544,7 +544,7 @@ static ssize_t ifx_tapi_write (struct fi +    IFX_uint8_t         *pData; +    IFX_size_t           buf_size; + #endif /* TAPI_PACKET */ +-   IFX_ssize_t          size = 0; ++   ssize_t          size = 0; +  + #ifdef TAPI_PACKET +    if (pTapiDev->bInitialized == IFX_FALSE) +@@ -3600,7 +3600,11 @@ IFX_void_t TAPI_OS_ThreadKill(IFXOS_Thre +             flag and released after the down() call. */ +          lock_kernel(); +          mb(); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) +          kill_proc(pThrCntrl->tid, SIGKILL, 1); ++#else ++         kill_pid(find_vpid(pThrCntrl->tid), SIGKILL, 1); ++#endif +          /* release the big kernel lock */ +          unlock_kernel(); +          wait_for_completion (&pThrCntrl->thrCompletion); +--- a/src/drv_tapi_osmap.h ++++ b/src/drv_tapi_osmap.h +@@ -17,39 +17,6 @@ + */ +  + #include "ifx_types.h"     /* ifx type definitions */ +- +-#ifndef HAVE_IFX_ULONG_T +-   #warning please update your ifx_types.h, using local definition of IFX_ulong_t +-   /* unsigned long type - valid for 32bit systems only */ +-   typedef unsigned long               IFX_ulong_t; +-   #define HAVE_IFX_ULONG_T +-#endif /* HAVE_IFX_ULONG_T */ +- +-#ifndef HAVE_IFX_LONG_T +-   #warning please update your ifx_types.h, using local definition of IFX_long_t +-   /* long type - valid for 32bit systems only */ +-   typedef long                        IFX_long_t; +-   #define HAVE_IFX_LONG_T +-#endif /* HAVE_IFX_LONG_T */ +- +-#ifndef HAVE_IFX_INTPTR_T +-   #warning please update your ifx_types.h, using local definition of IFX_intptr_t +-   typedef IFX_long_t                  IFX_intptr_t; +-   #define HAVE_IFX_INTPTR_T +-#endif /* HAVE_IFX_INTPTR_T */ +- +-#ifndef HAVE_IFX_SIZE_T +-   #warning please update your ifx_types.h, using local definition of IFX_size_t +-   typedef IFX_ulong_t                 IFX_size_t; +-   #define HAVE_IFX_SIZE_T +-#endif /* HAVE_IFX_SIZE_T */ +- +-#ifndef HAVE_IFX_SSIZE_T +-   #warning please update your ifx_types.h, using local definition of IFX_ssize_t +-   typedef IFX_long_t                  IFX_ssize_t; +-   #define HAVE_IFX_SSIZE_T +-#endif /* HAVE_IFX_SSIZE_T */ +- + #include "ifxos_interrupt.h" + #include "ifxos_memory_alloc.h" + #include "ifxos_copy_user_space.h" +--- a/include/drv_tapi_ll_interface.h ++++ b/include/drv_tapi_ll_interface.h +@@ -40,13 +40,6 @@ + #include "ifxos_select.h" + #endif /* TAPI_PACKET */ +  +-#ifndef HAVE_IFX_ULONG_T +-   #warning please update your ifx_types.h, using local definition of IFX_ulong_t +-   /* unsigned long type - valid for 32bit systems only */ +-   typedef unsigned long               IFX_ulong_t; +-   #define HAVE_IFX_ULONG_T +-#endif /* HAVE_IFX_ULONG_T */ +- + /* ============================= */ + /* Local Macros  Definitions    */ + /* ============================= */ +--- a/src/lib/lib_bufferpool/lib_bufferpool.c ++++ b/src/lib/lib_bufferpool/lib_bufferpool.c +@@ -80,24 +80,6 @@ + #include <linux/slab.h> + #endif /* LINUX */ +  +- +-/* ============================= */ +-/* Extra type definitions        */ +-/* ============================= */ +-#ifndef HAVE_IFX_ULONG_T +-   #warning please update your ifx_types.h, using local definition of IFX_ulong_t +-   /* unsigned long type - valid for 32bit systems only */ +-   typedef unsigned long               IFX_ulong_t; +-   #define HAVE_IFX_ULONG_T +-#endif /* HAVE_IFX_ULONG_T */ +- +-#ifndef HAVE_IFX_UINTPTR_T +-   #warning please update your ifx_types.h, using local definition of IFX_uintptr_t +-   typedef IFX_ulong_t                 IFX_uintptr_t; +-   #define HAVE_IFX_UINTPTR_T +-#endif /* HAVE_IFX_UINTPTR_T */ +- +- + /* ============================= */ + /* Local Macros & Definitions    */ + /* ============================= */ | 
