diff options
Diffstat (limited to 'wctdm24xxp/base.c')
-rw-r--r-- | wctdm24xxp/base.c | 6 |
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); |