mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
Update to 2.4.0-rc2.
Most notable changes are: - wctdm, wcte11xp, wcte12xp drivers are no longer experimental - outgoing FXO calls now work properly - experimental wctc4xxp support - experimental sparc64 support Add a bchan patch for zaphfc driver.
This commit is contained in:
parent
6c9136183e
commit
01f74df735
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=259992
@ -19,8 +19,8 @@ COMMENT= Digium/Asterisk Hardware Device Interface
|
||||
BUILD_DEPENDS= gmake:${PORTSDIR}/devel/gmake
|
||||
LIB_DEPENDS= newt.52:${PORTSDIR}/devel/newt
|
||||
|
||||
DAHDI_VERSION= 2.3.0-rc2
|
||||
DAHDI_TOOLS_VERSION= 2.3.0
|
||||
DAHDI_VERSION= 2.4.0-rc2
|
||||
DAHDI_TOOLS_VERSION= 2.4.0-rc1
|
||||
|
||||
NO_PACKAGE= Should be in sync with the kernel to work correctly
|
||||
GNU_CONFIGURE= yes
|
||||
@ -29,7 +29,7 @@ CONFIGURE_ENV= WGET=/usr/bin/fetch
|
||||
USE_LDCONFIG= yes
|
||||
USE_RC_SUBR= dahdi
|
||||
|
||||
ONLY_FOR_ARCHS= i386 amd64
|
||||
ONLY_FOR_ARCHS= i386 amd64 sparc64
|
||||
CONFLICTS= zaptel-[0-9]*
|
||||
|
||||
MAN8= dahdi_cfg.8\
|
||||
@ -39,8 +39,6 @@ MAN8= dahdi_cfg.8\
|
||||
dahdi_tool.8\
|
||||
fxotune.8
|
||||
|
||||
OPTIONS= EXPERIMENTAL "Enable experimental drivers" off
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OSVERSION} < 703000 || (${OSVERSION} >= 800000 && ${OSVERSION} < 800108)
|
||||
@ -53,13 +51,6 @@ PLIST_SUB+= X86=""
|
||||
PLIST_SUB+= X86="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITH_EXPERIMENTAL)
|
||||
MAKE_FLAGS+= WITH_EXPERIMENTAL=yes
|
||||
PLIST_SUB+= WITH_EXPERIMENTAL=""
|
||||
.else
|
||||
PLIST_SUB+= WITH_EXPERIMENTAL="@comment "
|
||||
.endif
|
||||
|
||||
pre-everything::
|
||||
@if [ ! -f /usr/src/sys/Makefile ]; then \
|
||||
${ECHO_MSG} ">> The dahdi port needs FreeBSD kernel source code to compile."; \
|
||||
|
@ -1,3 +1,3 @@
|
||||
MD5 (dahdi-freebsd-complete-2.3.0-rc2+2.3.0.tar.gz) = 3885e017536e75cd1cb2a210e6668970
|
||||
SHA256 (dahdi-freebsd-complete-2.3.0-rc2+2.3.0.tar.gz) = aa56f9a87584de6c96e8efd4598e74760febaac470bd4616d7ee22b0ac398e08
|
||||
SIZE (dahdi-freebsd-complete-2.3.0-rc2+2.3.0.tar.gz) = 2013326
|
||||
MD5 (dahdi-freebsd-complete-2.4.0-rc2+2.4.0-rc1.tar.gz) = 3393be3504d041283a02a088a295c78f
|
||||
SHA256 (dahdi-freebsd-complete-2.4.0-rc2+2.4.0-rc1.tar.gz) = 0da28c257f8e21b2ab81a21144773dfdfcdd6c90981cc0eafd576fed63708a03
|
||||
SIZE (dahdi-freebsd-complete-2.4.0-rc2+2.4.0-rc1.tar.gz) = 2048391
|
||||
|
@ -12,7 +12,18 @@
|
||||
#
|
||||
# dahdi_enable (bool): YES/NO (default: NO)
|
||||
# dahdi_modules (list of strings): dahdi modules to load at boot (default: dahdi)
|
||||
# Valid modules are: dahdi, wct4xxp, wcb4xxp
|
||||
#
|
||||
# Valid modules are:
|
||||
# - dahdi
|
||||
# - dahdi_transcode
|
||||
# - wcb4xxp
|
||||
# - wcfxo
|
||||
# - wct4xxp
|
||||
# - wctc4xxp
|
||||
# - wctdm
|
||||
# - wctdm24xxp
|
||||
# - wcte11xp
|
||||
# - wcte12xp
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
|
165
misc/dahdi-kmod/files/patch-bchan
Normal file
165
misc/dahdi-kmod/files/patch-bchan
Normal file
@ -0,0 +1,165 @@
|
||||
Index: freebsd/include/dahdi/dahdi_config.h
|
||||
===================================================================
|
||||
--- freebsd/include/dahdi/dahdi_config.h (revision 8781)
|
||||
+++ freebsd/include/dahdi/dahdi_config.h (working copy)
|
||||
@@ -180,7 +180,13 @@
|
||||
*/
|
||||
/* #define OPTIMIZE_CHANMUTE */
|
||||
|
||||
+/*
|
||||
+ * Uncomment the following for BRI D channels
|
||||
+ *
|
||||
+ */
|
||||
+#define CONFIG_DAHDI_BRI_DCHANS
|
||||
|
||||
+
|
||||
/*
|
||||
* Pass DAHDI_AUDIOMODE to channel driver as well
|
||||
*/
|
||||
Index: freebsd/include/dahdi/kernel.h
|
||||
===================================================================
|
||||
--- freebsd/include/dahdi/kernel.h (revision 8781)
|
||||
+++ freebsd/include/dahdi/kernel.h (working copy)
|
||||
@@ -426,6 +426,13 @@
|
||||
int statcount;
|
||||
int lastnumbufs;
|
||||
#endif
|
||||
+#ifdef CONFIG_DAHDI_BRI_DCHANS
|
||||
+ int bytes2receive;
|
||||
+ int maxbytes2transmit; /* size of the tx buffer in the card driver */
|
||||
+ int bytes2transmit;
|
||||
+ int eofrx;
|
||||
+ int eoftx;
|
||||
+#endif
|
||||
spinlock_t lock;
|
||||
char name[40];
|
||||
/* Specified by DAHDI */
|
||||
@@ -738,6 +745,9 @@
|
||||
DAHDI_FLAGBIT_LOOPED = 18, /*!< Loopback the receive data from the channel to the transmit */
|
||||
DAHDI_FLAGBIT_MTP2 = 19, /*!< Repeats last message in buffer and also discards repeating messages sent to us */
|
||||
DAHDI_FLAGBIT_HDLC56 = 20, /*!< Sets the given channel (if in HDLC mode) to use 56K HDLC instead of 64K */
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ DAHDI_FLAGBIT_BRIDCHAN = 21, /*!< hardhdlc-like handling of the D channel */
|
||||
+#endif
|
||||
};
|
||||
|
||||
struct dahdi_count {
|
||||
@@ -788,6 +798,7 @@
|
||||
#define DAHDI_FLAG_LOOPED DAHDI_FLAG(LOOPED)
|
||||
#define DAHDI_FLAG_MTP2 DAHDI_FLAG(MTP2)
|
||||
#define DAHDI_FLAG_HDLC56 DAHDI_FLAG(HDLC56)
|
||||
+#define DAHDI_FLAG_BRIDCHAN DAHDI_FLAG(BRIDCHAN)
|
||||
|
||||
struct dahdi_span {
|
||||
spinlock_t lock;
|
||||
Index: freebsd/drivers/dahdi/dahdi-base.c
|
||||
===================================================================
|
||||
--- freebsd/drivers/dahdi/dahdi-base.c (revision 8860)
|
||||
+++ freebsd/drivers/dahdi/dahdi-base.c (working copy)
|
||||
@@ -6884,11 +6881,40 @@
|
||||
*(txb++) = fasthdlc_tx_run_nocheck(&ms->txhdlc);
|
||||
}
|
||||
bytes -= left;
|
||||
+#ifdef CONFIG_DAHDI_BRI_DCHANS
|
||||
+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ /*
|
||||
+ * Let's get this right, we want to transmit complete frames only.
|
||||
+ * The card driver will do the dirty HDLC work for us.
|
||||
+ * txb (transmit buffer) is supposed to be big enough to store one frame
|
||||
+ * we will make this as big as the D fifo (1KB or 2KB)
|
||||
+ */
|
||||
+
|
||||
+ /* there are 'left' bytes in the user buffer left to transmit */
|
||||
+ left = ms->writen[ms->outwritebuf] - ms->writeidx[ms->outwritebuf] - 2;
|
||||
+ if (left > ms->maxbytes2transmit) {
|
||||
+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], ms->maxbytes2transmit);
|
||||
+ ms->writeidx[ms->outwritebuf] += ms->maxbytes2transmit;
|
||||
+ txb += ms->maxbytes2transmit;
|
||||
+ ms->bytes2transmit = ms->maxbytes2transmit;
|
||||
+ ms->eoftx = 0;
|
||||
+ } else {
|
||||
+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
|
||||
+ ms->writeidx[ms->outwritebuf] += left + 2;
|
||||
+ txb += left + 2;
|
||||
+ ms->bytes2transmit = left;
|
||||
+ ms->eoftx = 1;
|
||||
+ }
|
||||
+ bytes = 0;
|
||||
+#endif
|
||||
} else {
|
||||
memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
|
||||
ms->writeidx[ms->outwritebuf]+=left;
|
||||
txb += left;
|
||||
bytes -= left;
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ ms->bytes2transmit=DAHDI_CHUNKSIZE;
|
||||
+#endif
|
||||
}
|
||||
/* Check buffer status */
|
||||
if (ms->writeidx[ms->outwritebuf] >= ms->writen[ms->outwritebuf]) {
|
||||
@@ -6947,6 +6973,17 @@
|
||||
/* Transmit a flag if this is an HDLC channel */
|
||||
if (ms->flags & DAHDI_FLAG_HDLC)
|
||||
fasthdlc_tx_frame_nocheck(&ms->txhdlc);
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ // if (ms->bytes2transmit > 0) {
|
||||
+ // txb += 2;
|
||||
+ // ms->bytes2transmit -= 2;
|
||||
+ bytes=0;
|
||||
+ ms->eoftx = 1;
|
||||
+// printk(KERN_CRIT "zaptel EOF(%d) bytes2transmit %d\n",ms->eoftx,ms->bytes2transmit);
|
||||
+ // }
|
||||
+ }
|
||||
+#endif
|
||||
#ifdef CONFIG_DAHDI_NET
|
||||
if (ms->flags & DAHDI_FLAG_NETDEV)
|
||||
netif_wake_queue(ztchan_to_dev(ms));
|
||||
@@ -7007,6 +7044,12 @@
|
||||
memset(txb, 0xFF, bytes);
|
||||
}
|
||||
bytes = 0;
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ ms->bytes2transmit = 0;
|
||||
+ ms->eoftx = 0;
|
||||
+ bytes = 0;
|
||||
+#endif
|
||||
} else {
|
||||
memset(txb, DAHDI_LIN2X(0, ms), bytes); /* Lastly we use silence on telephony channels */
|
||||
bytes = 0;
|
||||
@@ -7905,6 +7948,14 @@
|
||||
int left, x;
|
||||
|
||||
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ bytes = ms->bytes2receive;
|
||||
+ if (bytes < 1) return;
|
||||
+// printk(KERN_CRIT "bytes2receive %d\n",ms->bytes2receive);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
while(bytes) {
|
||||
#if defined(CONFIG_DAHDI_NET) || defined(CONFIG_DAHDI_PPP)
|
||||
skb = NULL;
|
||||
@@ -7962,6 +8013,19 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+#ifdef CONFIG_DAHDI_BRI_DCHANS
|
||||
+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
|
||||
+ rxb += left;
|
||||
+ ms->readidx[ms->inreadbuf] += left;
|
||||
+ bytes -= left;
|
||||
+ if (ms->eofrx == 1) {
|
||||
+ eof=1;
|
||||
+ }
|
||||
+// printk(KERN_CRIT "receiving %d bytes\n",ms->bytes2receive);
|
||||
+ ms->bytes2receive = 0;
|
||||
+ ms->eofrx = 0;
|
||||
+#endif
|
||||
} else {
|
||||
/* Not HDLC */
|
||||
memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
|
@ -6,6 +6,7 @@ include/dahdi/wctdm_user.h
|
||||
lib/dahdi/dahdi-fw-hx8.bin.ko
|
||||
lib/dahdi/dahdi-fw-oct6114-064.bin.ko
|
||||
lib/dahdi/dahdi-fw-oct6114-128.bin.ko
|
||||
lib/dahdi/dahdi-fw-tc400m.bin.ko
|
||||
lib/dahdi/dahdi.ko
|
||||
lib/dahdi/dahdi_dynamic.ko
|
||||
lib/dahdi/dahdi_dynamic_eth.ko
|
||||
@ -16,17 +17,19 @@ lib/dahdi/dahdi_echocan_kb1.ko
|
||||
lib/dahdi/dahdi_echocan_mg2.ko
|
||||
lib/dahdi/dahdi_echocan_sec.ko
|
||||
lib/dahdi/dahdi_echocan_sec2.ko
|
||||
lib/dahdi/dahdi_transcode.ko
|
||||
lib/dahdi/dahdi_voicebus.ko
|
||||
%%X86%%lib/dahdi/dahdi_vpmadt032_loader.ko
|
||||
lib/dahdi/linker.hints
|
||||
lib/dahdi/ng_dahdi_netdev.ko
|
||||
lib/dahdi/wcb4xxp.ko
|
||||
lib/dahdi/wcfxo.ko
|
||||
lib/dahdi/wct4xxp.ko
|
||||
lib/dahdi/wctc4xxp.ko
|
||||
lib/dahdi/wctdm.ko
|
||||
lib/dahdi/wctdm24xxp.ko
|
||||
%%X86%%%%WITH_EXPERIMENTAL%%lib/dahdi/dahdi_vpmadt032_loader.ko
|
||||
%%WITH_EXPERIMENTAL%%lib/dahdi/wctdm.ko
|
||||
%%WITH_EXPERIMENTAL%%lib/dahdi/wcte11xp.ko
|
||||
%%WITH_EXPERIMENTAL%%lib/dahdi/wcte12xp.ko
|
||||
lib/dahdi/wcte11xp.ko
|
||||
lib/dahdi/wcte12xp.ko
|
||||
lib/libtonezone.a
|
||||
lib/libtonezone.so
|
||||
lib/libtonezone.so.1
|
||||
|
@ -19,8 +19,8 @@ COMMENT= Digium/Asterisk Hardware Device Interface
|
||||
BUILD_DEPENDS= gmake:${PORTSDIR}/devel/gmake
|
||||
LIB_DEPENDS= newt.52:${PORTSDIR}/devel/newt
|
||||
|
||||
DAHDI_VERSION= 2.3.0-rc2
|
||||
DAHDI_TOOLS_VERSION= 2.3.0
|
||||
DAHDI_VERSION= 2.4.0-rc2
|
||||
DAHDI_TOOLS_VERSION= 2.4.0-rc1
|
||||
|
||||
NO_PACKAGE= Should be in sync with the kernel to work correctly
|
||||
GNU_CONFIGURE= yes
|
||||
@ -29,7 +29,7 @@ CONFIGURE_ENV= WGET=/usr/bin/fetch
|
||||
USE_LDCONFIG= yes
|
||||
USE_RC_SUBR= dahdi
|
||||
|
||||
ONLY_FOR_ARCHS= i386 amd64
|
||||
ONLY_FOR_ARCHS= i386 amd64 sparc64
|
||||
CONFLICTS= zaptel-[0-9]*
|
||||
|
||||
MAN8= dahdi_cfg.8\
|
||||
@ -39,8 +39,6 @@ MAN8= dahdi_cfg.8\
|
||||
dahdi_tool.8\
|
||||
fxotune.8
|
||||
|
||||
OPTIONS= EXPERIMENTAL "Enable experimental drivers" off
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OSVERSION} < 703000 || (${OSVERSION} >= 800000 && ${OSVERSION} < 800108)
|
||||
@ -53,13 +51,6 @@ PLIST_SUB+= X86=""
|
||||
PLIST_SUB+= X86="@comment "
|
||||
.endif
|
||||
|
||||
.if defined(WITH_EXPERIMENTAL)
|
||||
MAKE_FLAGS+= WITH_EXPERIMENTAL=yes
|
||||
PLIST_SUB+= WITH_EXPERIMENTAL=""
|
||||
.else
|
||||
PLIST_SUB+= WITH_EXPERIMENTAL="@comment "
|
||||
.endif
|
||||
|
||||
pre-everything::
|
||||
@if [ ! -f /usr/src/sys/Makefile ]; then \
|
||||
${ECHO_MSG} ">> The dahdi port needs FreeBSD kernel source code to compile."; \
|
||||
|
@ -1,3 +1,3 @@
|
||||
MD5 (dahdi-freebsd-complete-2.3.0-rc2+2.3.0.tar.gz) = 3885e017536e75cd1cb2a210e6668970
|
||||
SHA256 (dahdi-freebsd-complete-2.3.0-rc2+2.3.0.tar.gz) = aa56f9a87584de6c96e8efd4598e74760febaac470bd4616d7ee22b0ac398e08
|
||||
SIZE (dahdi-freebsd-complete-2.3.0-rc2+2.3.0.tar.gz) = 2013326
|
||||
MD5 (dahdi-freebsd-complete-2.4.0-rc2+2.4.0-rc1.tar.gz) = 3393be3504d041283a02a088a295c78f
|
||||
SHA256 (dahdi-freebsd-complete-2.4.0-rc2+2.4.0-rc1.tar.gz) = 0da28c257f8e21b2ab81a21144773dfdfcdd6c90981cc0eafd576fed63708a03
|
||||
SIZE (dahdi-freebsd-complete-2.4.0-rc2+2.4.0-rc1.tar.gz) = 2048391
|
||||
|
@ -12,7 +12,18 @@
|
||||
#
|
||||
# dahdi_enable (bool): YES/NO (default: NO)
|
||||
# dahdi_modules (list of strings): dahdi modules to load at boot (default: dahdi)
|
||||
# Valid modules are: dahdi, wct4xxp, wcb4xxp
|
||||
#
|
||||
# Valid modules are:
|
||||
# - dahdi
|
||||
# - dahdi_transcode
|
||||
# - wcb4xxp
|
||||
# - wcfxo
|
||||
# - wct4xxp
|
||||
# - wctc4xxp
|
||||
# - wctdm
|
||||
# - wctdm24xxp
|
||||
# - wcte11xp
|
||||
# - wcte12xp
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
|
165
misc/dahdi/files/patch-bchan
Normal file
165
misc/dahdi/files/patch-bchan
Normal file
@ -0,0 +1,165 @@
|
||||
Index: freebsd/include/dahdi/dahdi_config.h
|
||||
===================================================================
|
||||
--- freebsd/include/dahdi/dahdi_config.h (revision 8781)
|
||||
+++ freebsd/include/dahdi/dahdi_config.h (working copy)
|
||||
@@ -180,7 +180,13 @@
|
||||
*/
|
||||
/* #define OPTIMIZE_CHANMUTE */
|
||||
|
||||
+/*
|
||||
+ * Uncomment the following for BRI D channels
|
||||
+ *
|
||||
+ */
|
||||
+#define CONFIG_DAHDI_BRI_DCHANS
|
||||
|
||||
+
|
||||
/*
|
||||
* Pass DAHDI_AUDIOMODE to channel driver as well
|
||||
*/
|
||||
Index: freebsd/include/dahdi/kernel.h
|
||||
===================================================================
|
||||
--- freebsd/include/dahdi/kernel.h (revision 8781)
|
||||
+++ freebsd/include/dahdi/kernel.h (working copy)
|
||||
@@ -426,6 +426,13 @@
|
||||
int statcount;
|
||||
int lastnumbufs;
|
||||
#endif
|
||||
+#ifdef CONFIG_DAHDI_BRI_DCHANS
|
||||
+ int bytes2receive;
|
||||
+ int maxbytes2transmit; /* size of the tx buffer in the card driver */
|
||||
+ int bytes2transmit;
|
||||
+ int eofrx;
|
||||
+ int eoftx;
|
||||
+#endif
|
||||
spinlock_t lock;
|
||||
char name[40];
|
||||
/* Specified by DAHDI */
|
||||
@@ -738,6 +745,9 @@
|
||||
DAHDI_FLAGBIT_LOOPED = 18, /*!< Loopback the receive data from the channel to the transmit */
|
||||
DAHDI_FLAGBIT_MTP2 = 19, /*!< Repeats last message in buffer and also discards repeating messages sent to us */
|
||||
DAHDI_FLAGBIT_HDLC56 = 20, /*!< Sets the given channel (if in HDLC mode) to use 56K HDLC instead of 64K */
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ DAHDI_FLAGBIT_BRIDCHAN = 21, /*!< hardhdlc-like handling of the D channel */
|
||||
+#endif
|
||||
};
|
||||
|
||||
struct dahdi_count {
|
||||
@@ -788,6 +798,7 @@
|
||||
#define DAHDI_FLAG_LOOPED DAHDI_FLAG(LOOPED)
|
||||
#define DAHDI_FLAG_MTP2 DAHDI_FLAG(MTP2)
|
||||
#define DAHDI_FLAG_HDLC56 DAHDI_FLAG(HDLC56)
|
||||
+#define DAHDI_FLAG_BRIDCHAN DAHDI_FLAG(BRIDCHAN)
|
||||
|
||||
struct dahdi_span {
|
||||
spinlock_t lock;
|
||||
Index: freebsd/drivers/dahdi/dahdi-base.c
|
||||
===================================================================
|
||||
--- freebsd/drivers/dahdi/dahdi-base.c (revision 8860)
|
||||
+++ freebsd/drivers/dahdi/dahdi-base.c (working copy)
|
||||
@@ -6884,11 +6881,40 @@
|
||||
*(txb++) = fasthdlc_tx_run_nocheck(&ms->txhdlc);
|
||||
}
|
||||
bytes -= left;
|
||||
+#ifdef CONFIG_DAHDI_BRI_DCHANS
|
||||
+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ /*
|
||||
+ * Let's get this right, we want to transmit complete frames only.
|
||||
+ * The card driver will do the dirty HDLC work for us.
|
||||
+ * txb (transmit buffer) is supposed to be big enough to store one frame
|
||||
+ * we will make this as big as the D fifo (1KB or 2KB)
|
||||
+ */
|
||||
+
|
||||
+ /* there are 'left' bytes in the user buffer left to transmit */
|
||||
+ left = ms->writen[ms->outwritebuf] - ms->writeidx[ms->outwritebuf] - 2;
|
||||
+ if (left > ms->maxbytes2transmit) {
|
||||
+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], ms->maxbytes2transmit);
|
||||
+ ms->writeidx[ms->outwritebuf] += ms->maxbytes2transmit;
|
||||
+ txb += ms->maxbytes2transmit;
|
||||
+ ms->bytes2transmit = ms->maxbytes2transmit;
|
||||
+ ms->eoftx = 0;
|
||||
+ } else {
|
||||
+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
|
||||
+ ms->writeidx[ms->outwritebuf] += left + 2;
|
||||
+ txb += left + 2;
|
||||
+ ms->bytes2transmit = left;
|
||||
+ ms->eoftx = 1;
|
||||
+ }
|
||||
+ bytes = 0;
|
||||
+#endif
|
||||
} else {
|
||||
memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
|
||||
ms->writeidx[ms->outwritebuf]+=left;
|
||||
txb += left;
|
||||
bytes -= left;
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ ms->bytes2transmit=DAHDI_CHUNKSIZE;
|
||||
+#endif
|
||||
}
|
||||
/* Check buffer status */
|
||||
if (ms->writeidx[ms->outwritebuf] >= ms->writen[ms->outwritebuf]) {
|
||||
@@ -6947,6 +6973,17 @@
|
||||
/* Transmit a flag if this is an HDLC channel */
|
||||
if (ms->flags & DAHDI_FLAG_HDLC)
|
||||
fasthdlc_tx_frame_nocheck(&ms->txhdlc);
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ // if (ms->bytes2transmit > 0) {
|
||||
+ // txb += 2;
|
||||
+ // ms->bytes2transmit -= 2;
|
||||
+ bytes=0;
|
||||
+ ms->eoftx = 1;
|
||||
+// printk(KERN_CRIT "zaptel EOF(%d) bytes2transmit %d\n",ms->eoftx,ms->bytes2transmit);
|
||||
+ // }
|
||||
+ }
|
||||
+#endif
|
||||
#ifdef CONFIG_DAHDI_NET
|
||||
if (ms->flags & DAHDI_FLAG_NETDEV)
|
||||
netif_wake_queue(ztchan_to_dev(ms));
|
||||
@@ -7007,6 +7044,12 @@
|
||||
memset(txb, 0xFF, bytes);
|
||||
}
|
||||
bytes = 0;
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ ms->bytes2transmit = 0;
|
||||
+ ms->eoftx = 0;
|
||||
+ bytes = 0;
|
||||
+#endif
|
||||
} else {
|
||||
memset(txb, DAHDI_LIN2X(0, ms), bytes); /* Lastly we use silence on telephony channels */
|
||||
bytes = 0;
|
||||
@@ -7905,6 +7948,14 @@
|
||||
int left, x;
|
||||
|
||||
|
||||
+#if defined(CONFIG_DAHDI_BRI_DCHANS)
|
||||
+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ bytes = ms->bytes2receive;
|
||||
+ if (bytes < 1) return;
|
||||
+// printk(KERN_CRIT "bytes2receive %d\n",ms->bytes2receive);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
while(bytes) {
|
||||
#if defined(CONFIG_DAHDI_NET) || defined(CONFIG_DAHDI_PPP)
|
||||
skb = NULL;
|
||||
@@ -7962,6 +8013,19 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+#ifdef CONFIG_DAHDI_BRI_DCHANS
|
||||
+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
|
||||
+ memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
|
||||
+ rxb += left;
|
||||
+ ms->readidx[ms->inreadbuf] += left;
|
||||
+ bytes -= left;
|
||||
+ if (ms->eofrx == 1) {
|
||||
+ eof=1;
|
||||
+ }
|
||||
+// printk(KERN_CRIT "receiving %d bytes\n",ms->bytes2receive);
|
||||
+ ms->bytes2receive = 0;
|
||||
+ ms->eofrx = 0;
|
||||
+#endif
|
||||
} else {
|
||||
/* Not HDLC */
|
||||
memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
|
@ -6,6 +6,7 @@ include/dahdi/wctdm_user.h
|
||||
lib/dahdi/dahdi-fw-hx8.bin.ko
|
||||
lib/dahdi/dahdi-fw-oct6114-064.bin.ko
|
||||
lib/dahdi/dahdi-fw-oct6114-128.bin.ko
|
||||
lib/dahdi/dahdi-fw-tc400m.bin.ko
|
||||
lib/dahdi/dahdi.ko
|
||||
lib/dahdi/dahdi_dynamic.ko
|
||||
lib/dahdi/dahdi_dynamic_eth.ko
|
||||
@ -16,17 +17,19 @@ lib/dahdi/dahdi_echocan_kb1.ko
|
||||
lib/dahdi/dahdi_echocan_mg2.ko
|
||||
lib/dahdi/dahdi_echocan_sec.ko
|
||||
lib/dahdi/dahdi_echocan_sec2.ko
|
||||
lib/dahdi/dahdi_transcode.ko
|
||||
lib/dahdi/dahdi_voicebus.ko
|
||||
%%X86%%lib/dahdi/dahdi_vpmadt032_loader.ko
|
||||
lib/dahdi/linker.hints
|
||||
lib/dahdi/ng_dahdi_netdev.ko
|
||||
lib/dahdi/wcb4xxp.ko
|
||||
lib/dahdi/wcfxo.ko
|
||||
lib/dahdi/wct4xxp.ko
|
||||
lib/dahdi/wctc4xxp.ko
|
||||
lib/dahdi/wctdm.ko
|
||||
lib/dahdi/wctdm24xxp.ko
|
||||
%%X86%%%%WITH_EXPERIMENTAL%%lib/dahdi/dahdi_vpmadt032_loader.ko
|
||||
%%WITH_EXPERIMENTAL%%lib/dahdi/wctdm.ko
|
||||
%%WITH_EXPERIMENTAL%%lib/dahdi/wcte11xp.ko
|
||||
%%WITH_EXPERIMENTAL%%lib/dahdi/wcte12xp.ko
|
||||
lib/dahdi/wcte11xp.ko
|
||||
lib/dahdi/wcte12xp.ko
|
||||
lib/libtonezone.a
|
||||
lib/libtonezone.so
|
||||
lib/libtonezone.so.1
|
||||
|
Loading…
Reference in New Issue
Block a user