summaryrefslogtreecommitdiff
path: root/wctdm.c
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 /wctdm.c
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 'wctdm.c')
-rw-r--r--wctdm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/wctdm.c b/wctdm.c
index 30035c9..f7c2061 100644
--- a/wctdm.c
+++ b/wctdm.c
@@ -2061,6 +2061,7 @@ static int wctdm_initialize(struct wctdm *wc)
static void wctdm_post_initialize(struct wctdm *wc)
{
int x;
+
/* Finalize signalling */
for (x = 0; x < NUM_CARDS; x++) {
if (wc->cardflag & (1 << x)) {
@@ -2068,6 +2069,8 @@ static void wctdm_post_initialize(struct wctdm *wc)
wc->chans[x].sigcap = ZT_SIG_FXSKS | ZT_SIG_FXSLS | ZT_SIG_SF | ZT_SIG_CLEAR;
else
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->chans[x].sigcap == ZT_SIG_BROKEN)) {
+ wc->chans[x].sigcap = 0;
}
}
}
@@ -2184,6 +2187,7 @@ static int wctdm_hardware_init(struct wctdm *wc)
printk("Module %d: Installed -- MANUAL FXS\n",x);
} else {
printk("Module %d: FAILED FXS (%s)\n", x, 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);