From 534c7e75478a25fb296b5ed7304686b1d60c506b Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Thu, 20 Oct 2011 20:51:53 +0000 Subject: [PATCH] wctdm24xxp: Setup all VPMADT032 channels on hybrid cards. r10160 "wctdm24xxp: Probe for and configure modules in parallel." did not properly setup the VPMADT032 for all ports on hybrid cards. The most immediate sympton being that spans 3 and up on a hybrid card would not come up in Asterisk even though they were out of alarm. This was because the echo canceler was blocking messages on the dchannels. This does not affect any previously released versions of DAHDI-Linux or users of the VPMOCT032. Signed-off-by: Shaun Ruffell Acked-by: Michael Spiceland Acked-by: Russ Meyerriecks git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10228 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/wctdm24xxp/base.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index 51fea10..034a908 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -4596,7 +4596,15 @@ static int wctdm_initialize_vpmadt032(struct wctdm *wc) options.vpmnlptype = vpmnlptype; options.vpmnlpthresh = vpmnlpthresh; options.vpmnlpmaxsupp = vpmnlpmaxsupp; - options.channels = wc->desc->ports; + if (is_hx8(wc)) { + /* Hybrid cards potentially have 3 channels of EC on their + * ports since they may be BRI spans. */ + options.channels = 3 * wc->desc->ports; + } else { + options.channels = wc->desc->ports; + } + + BUG_ON(options.channels > 24); wc->vpmadt032 = vpmadt032_alloc(&options); if (!wc->vpmadt032)