summaryrefslogtreecommitdiff
path: root/wctdm24xxp
diff options
context:
space:
mode:
authorkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-12-04 18:13:04 +0000
committerkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-12-04 18:13:04 +0000
commit3a685bb90b83ebf4aabf0aa0a974a2d65e38375e (patch)
tree70c16cffd1b46b0675fb00529dc1cf6cd0c09338 /wctdm24xxp
parentc937d5f0c4cb86a63d3b79fe76ba3d60c2cd8dc4 (diff)
the analog card drivers can now mark failed modules as 'broken', and ztscan can output that information
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3294 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'wctdm24xxp')
-rw-r--r--wctdm24xxp/base.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/wctdm24xxp/base.c b/wctdm24xxp/base.c
index d2c4368..311f699 100644
--- a/wctdm24xxp/base.c
+++ b/wctdm24xxp/base.c
@@ -3093,8 +3093,9 @@ static int wctdm_initialize(struct wctdm *wc)
static void wctdm_post_initialize(struct wctdm *wc)
{
int x;
+
/* Finalize signalling */
- for (x=0;x<wc->cards;x++) {
+ for (x = 0; x <wc->cards; x++) {
if (wc->cardflag & (1 << x)) {
if (wc->modtype[x] == MOD_TYPE_FXO)
wc->chans[x].sigcap = ZT_SIG_FXSKS | ZT_SIG_FXSLS | ZT_SIG_SF | ZT_SIG_CLEAR;
@@ -3102,6 +3103,8 @@ static void wctdm_post_initialize(struct wctdm *wc)
wc->chans[x].sigcap = ZT_SIG_FXOKS | ZT_SIG_FXOLS | ZT_SIG_FXOGS | ZT_SIG_SF | ZT_SIG_EM | ZT_SIG_CLEAR;
else if (wc->modtype[x] == MOD_TYPE_QRV)
wc->chans[x].sigcap = ZT_SIG_SF | ZT_SIG_EM | ZT_SIG_CLEAR;
+ } else if (!(wc->chans[x].sigcap == ZT_SIG_BROKEN)) {
+ wc->chans[x].sigcap = 0;
}
}
}
@@ -3946,6 +3949,7 @@ retry:
printk("Port %d: Installed -- MANUAL FXS\n",x + 1);
} else {
printk("Port %d: FAILED FXS (%s)\n", x + 1, fxshonormode ? fxo_modes[_opermode].name : "FCC");
+ wc->chans[x].sigcap = ZT_SIG_BROKEN;
}
} else if (!(ret = wctdm_init_voicedaa(wc, x, 0, 0, sane))) {
wc->cardflag |= (1 << x);