summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-11-14 15:22:59 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-11-14 15:22:59 +0000
commitb422b5cdc54e53448e62996e6bbcabb8d38fcd71 (patch)
tree6470f62da290f1a4af2174a90e5cba8964b7fee7
parent961fd56e1abd5421be4b9f0a5e653e74513dc1b9 (diff)
xpp r5010:
* Fix a deadlock spotted on some SMP installations. * Improve (reduce) signal attenuation on FXO ports. * Increase FXS ring detect debounce interval. Merged revisions 3229-3232 via svnmerge from http://svn.digium.com/svn/zaptel/branches/1.2 git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3233 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r--xpp/.version2
-rw-r--r--xpp/Changelog_xpp6
-rwxr-xr-xxpp/init_card_3_292
-rwxr-xr-xxpp/init_card_4_294
-rw-r--r--xpp/utils/print_modes.c2
-rw-r--r--xpp/xpp_zap.c6
6 files changed, 14 insertions, 8 deletions
diff --git a/xpp/.version b/xpp/.version
index 1f850cf..016eda5 100644
--- a/xpp/.version
+++ b/xpp/.version
@@ -1 +1 @@
-branch-rel-4816-r4900
+branch-rel-4816-r5010
diff --git a/xpp/Changelog_xpp b/xpp/Changelog_xpp
index 9171bc3..582ebcc 100644
--- a/xpp/Changelog_xpp
+++ b/xpp/Changelog_xpp
@@ -1,3 +1,9 @@
+Wed Nov 14 2007 Tzafrir Cohen <tzafrir.cohen@xorcom.com> - xpp.r5010
+ * Fix a deadlock spotted on some SMP installations.
+ * increase FXS ring detect debounce interval.
+ * Improve (reduce) signal attenuation on FXO ports.
+ * zaptel-perl: further fixes to handling of empty slots.
+
Wed Oct 3 2007 Tzafrir Cohen <tzafrir.cohen@xorcom.com> - xpp.r4900
* Zaptel/Hardware perl modules:
- Use sysfs directly. Don't rely on lspci/lsusb.
diff --git a/xpp/init_card_3_29 b/xpp/init_card_3_29
index c0cf339..43dbb54 100755
--- a/xpp/init_card_3_29
+++ b/xpp/init_card_3_29
@@ -143,7 +143,7 @@ echo "
31 WD 45 0A
# Ring Detect Debounce Interval
-31 WD 46 0B
+31 WD 46 47
# Battery Feed Control: Battery low (DCSW low)
31 WD 42 00
diff --git a/xpp/init_card_4_29 b/xpp/init_card_4_29
index 760e711..5dda0b2 100755
--- a/xpp/init_card_4_29
+++ b/xpp/init_card_4_29
@@ -141,8 +141,8 @@ for i in `seq 0 7`; do
echo "$i WD 20 A0"
done
-# based on fxo_modes from wctdm.c . TODO: more decent calculation?
-reg16=00; reg26=00; reg30=00; reg31=A3; ring_osc=; ring_x=;
+# based on fxo_modes from wctdm.c .
+reg16=00; reg26=00; reg30=00; reg31=20; ring_osc=; ring_x=;
mode="$opermode"
if [ -r $INIT_DIR/init_fxo_modes ]; then
. $INIT_DIR/init_fxo_modes
diff --git a/xpp/utils/print_modes.c b/xpp/utils/print_modes.c
index b52c0c5..6312bd1 100644
--- a/xpp/utils/print_modes.c
+++ b/xpp/utils/print_modes.c
@@ -8,7 +8,7 @@ int main() {
printf("case \"$mode\" in\n");
for (i=0; i<(sizeof(fxo_modes)/sizeof(struct fxo_mode)); i++) {
if (fxo_modes[i].name == NULL) break;
- int reg16=0, reg26=0, reg30=0, reg31=0xa3;
+ int reg16=0, reg26=0, reg30=0, reg31=0x20;
char ring_osc[BUFSIZ]="", ring_x[BUFSIZ] = "";
reg16 |= (fxo_modes[i].ohs << 6);
diff --git a/xpp/xpp_zap.c b/xpp/xpp_zap.c
index 67de877..aabc236 100644
--- a/xpp/xpp_zap.c
+++ b/xpp/xpp_zap.c
@@ -1364,7 +1364,7 @@ static void do_ec(xpd_t *xpd)
struct zt_chan *chans = xpd->span.chans;
int i;
-#if WITH_ECHO_SUPPRESSION
+#ifdef WITH_ECHO_SUPPRESSION
/* FIXME: need to Echo cancel double buffered data */
for (i = 0;i < xpd->span.channels; i++) {
if(unlikely(IS_SET(xpd->digital_signalling, i))) /* Don't echo cancel PRI/BRI D-chans */
@@ -1419,12 +1419,12 @@ static void xpp_receiveprep(xpd_t *xpd)
memset(chans[i].readchunk, 0x7F, ZT_CHUNKSIZE); // SILENCE
}
}
- do_ec(xpd);
spin_unlock_irqrestore(&xpd->lock, flags);
/*
* This should be out of spinlocks, as it may call back our hook setting
* methods
*/
+ do_ec(xpd);
zt_receive(&xpd->span);
}
@@ -1775,7 +1775,7 @@ int __init xpp_zap_init(void)
INFO("revision %s MAX_XPDS=%d (%d*%d)\n", XPP_VERSION,
MAX_XPDS, MAX_UNIT, MAX_SUBUNIT);
-#if WITH_ECHO_SUPPRESSION
+#ifdef WITH_ECHO_SUPPRESSION
INFO("FEATURE: with ECHO_SUPPRESSION\n");
#else
INFO("FEATURE: without ECHO_SUPPRESSION\n");