mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[ifxmips] adds voip support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20637 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
71
package/ifx-tapi/Config.in
Normal file
71
package/ifx-tapi/Config.in
Normal file
@@ -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
|
||||
70
package/ifx-tapi/Makefile
Normal file
70
package/ifx-tapi/Makefile
Normal file
@@ -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))
|
||||
26
package/ifx-tapi/patches/001-portability.patch
Normal file
26
package/ifx-tapi/patches/001-portability.patch
Normal file
@@ -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:
|
||||
108
package/ifx-tapi/patches/100-ifxmips.patch
Normal file
108
package/ifx-tapi/patches/100-ifxmips.patch
Normal file
@@ -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 */
|
||||
/* ============================= */
|
||||
Reference in New Issue
Block a user