summaryrefslogtreecommitdiff
path: root/wctdm24xxp
diff options
context:
space:
mode:
authorrussell <russell@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-09-11 18:10:58 +0000
committerrussell <russell@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-09-11 18:10:58 +0000
commite629d7e5ea761222b3c086a8a7ea0485646ceae2 (patch)
treeaf9cee1d416a0cedc1ab4d2636fa18d73dc7c642 /wctdm24xxp
parent1f0a059c7f501eed084f24ef4b51baa4068d6b1c (diff)
After committing the patch to make ringdebounce a module parameter in wctdm, I
went ahead and made the same change to wctdm24xxp. *** Note that there is a discrepancy here. wctdm uses 64 ms as the default ring debounce value while this module uses 128 ms. I'm not sure which one is more appropriate, but they should certainly default to the same thing. git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3012 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'wctdm24xxp')
-rw-r--r--wctdm24xxp/base.c7
-rw-r--r--wctdm24xxp/wctdm24xxp.h8
2 files changed, 12 insertions, 3 deletions
diff --git a/wctdm24xxp/base.c b/wctdm24xxp/base.c
index c789dc6..c91f3fd 100644
--- a/wctdm24xxp/base.c
+++ b/wctdm24xxp/base.c
@@ -283,6 +283,7 @@ static int fxorxgain = 0;
static int fxstxgain = 0;
static int fxsrxgain = 0;
static int nativebridge = 1;
+static int ringdebounce = DEFAULT_RING_DEBOUNCE;
#ifdef VPM_SUPPORT
static int vpmsupport = 1;
static int vpmdtmfsupport = 0;
@@ -1300,14 +1301,14 @@ static inline void wctdm_voicedaa_check_hook(struct wctdm *wc, int card)
res = wc->cmdq[card].isrshadow[0]; /* Hook/Ring state */
if ((res & 0x60) && wc->mods[card].fxo.battery) {
wc->mods[card].fxo.ringdebounce += (ZT_CHUNKSIZE * 4);
- if (wc->mods[card].fxo.ringdebounce >= ZT_CHUNKSIZE * RING_DEBOUNCE) {
+ if (wc->mods[card].fxo.ringdebounce >= ZT_CHUNKSIZE * ringdebounce) {
if (!wc->mods[card].fxo.wasringing) {
wc->mods[card].fxo.wasringing = 1;
zt_hooksig(&wc->chans[card], ZT_RXSIG_RING);
if (debug & DEBUG_CARD)
printk("RING on %d/%d!\n", wc->span.spanno, card + 1);
}
- wc->mods[card].fxo.ringdebounce = ZT_CHUNKSIZE * RING_DEBOUNCE;
+ wc->mods[card].fxo.ringdebounce = ZT_CHUNKSIZE * ringdebounce;
}
} else {
wc->mods[card].fxo.ringdebounce -= ZT_CHUNKSIZE;
@@ -4196,6 +4197,7 @@ module_param(fxotxgain, int, 0600);
module_param(fxorxgain, int, 0600);
module_param(fxstxgain, int, 0600);
module_param(fxsrxgain, int, 0600);
+module_param(ringdebounce, int, 0600);
#ifdef VPM_SUPPORT
module_param(vpmsupport, int, 0600);
module_param(vpmdtmfsupport, int, 0600);
@@ -4219,6 +4221,7 @@ MODULE_PARM(fxotxgain, "i");
MODULE_PARM(fxorxgain, "i");
MODULE_PARM(fxstxgain, "i");
MODULE_PARM(fxsrxgain, "i");
+MODULE_PARM(ringdebounce, "i");
#ifdef VPM_SUPPORT
MODULE_PARM(vpmsupport, "i");
MODULE_PARM(vpmdtmfsupport, "i");
diff --git a/wctdm24xxp/wctdm24xxp.h b/wctdm24xxp/wctdm24xxp.h
index b7067ca..16260cb 100644
--- a/wctdm24xxp/wctdm24xxp.h
+++ b/wctdm24xxp/wctdm24xxp.h
@@ -8,7 +8,13 @@
#define WC_MAX_IFACES 128
-#define RING_DEBOUNCE 128 /* Ringer Debounce (in ms) */
+/*!
+ * \brief Default ringer debounce (in ms)
+ *
+ * \todo This value differs from that in wctdm. In that module, it is 64 ms
+ * instead of 128 ms. Which one is more appropriate?
+ */
+#define DEFAULT_RING_DEBOUNCE 128
#define DEFAULT_BATT_DEBOUNCE 64 /* Battery debounce (in ms) */
#define POLARITY_DEBOUNCE 64 /* Polarity debounce (in ms) */
#define DEFAULT_BATT_THRESH 3 /* Anything under this is "no battery" */