[dahdi-commits] dahdi/linux.git branch "master" updated.
SVN commits to the DAHDI project
dahdi-commits at lists.digium.com
Fri Jun 27 22:42:03 CDT 2014
branch "master" has been updated
via 089b593b56c73be97b37155798a62db0dd0c7435 (commit)
from 71867c3de734f6d556ea66b67c25216c9a477a84 (commit)
Summary of changes:
drivers/dahdi/wct4xxp/base.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
- Log -----------------------------------------------------------------
commit 089b593b56c73be97b37155798a62db0dd0c7435
Author: Shaun Ruffell <sruffell at digium.com>
Date: Fri Jun 27 22:33:10 2014 -0500
wct4xxp: Report rx signalling bit changes after spanconfig.
This fixes a long standing issue where, for CAS signaling, the RX bits were
sometimes misreported after span configuration before the first detected state
change.
The logic in the wct4xxp driver now matches that in the wcte43x driver and
wcte13xp drivers. The wcte12xp driver always polls the sigbits due to how
voicebus works and is not affected by this.
Internal-Issue-ID: DAHDI-1081
Signed-off-by: Shaun Ruffell <sruffell at digium.com>
diff --git a/drivers/dahdi/wct4xxp/base.c b/drivers/dahdi/wct4xxp/base.c
index 983e448..bb00bcd 100644
--- a/drivers/dahdi/wct4xxp/base.c
+++ b/drivers/dahdi/wct4xxp/base.c
@@ -3296,8 +3296,6 @@ static void t4_check_sigbits(struct t4 *wc, int span)
dev_notice(&wc->dev->dev, "Checking sigbits on span %d\n",
span + 1);
- if (!(ts->span.flags & DAHDI_FLAG_RUNNING))
- return;
if (E1 == ts->linemode) {
for (i = 0; i < 15; i++) {
a = t4_framer_in(wc, span, 0x71 + i);
@@ -3687,6 +3685,7 @@ static inline void t4_framer_interrupt(struct t4 *wc, int span)
struct t4_span *ts = wc->tspans[span];
struct dahdi_chan *sigchan;
unsigned long flags;
+ bool recheck_sigbits = false;
/* 1st gen cards isn't used interrupts */
@@ -3712,6 +3711,8 @@ static inline void t4_framer_interrupt(struct t4 *wc, int span)
ts->span.count.ebit += __t4_framer_in(wc, span, EBCL_T);
ts->span.count.be += __t4_framer_in(wc, span, BECL_T);
ts->span.count.prbs = __t4_framer_in(wc, span, FRS1_T);
+ if (DAHDI_RXSIG_INITIAL == ts->span.chans[0]->rxhooksig)
+ recheck_sigbits = true;
}
spin_unlock_irqrestore(&wc->reglock, flags);
@@ -3720,7 +3721,7 @@ static inline void t4_framer_interrupt(struct t4 *wc, int span)
ts->span.count.errsec += 1;
}
- if (isr0)
+ if (isr0 & 0x08 || recheck_sigbits)
t4_check_sigbits(wc, span);
if (E1 == ts->linemode) {
-----------------------------------------------------------------------
--
dahdi/linux.git
More information about the dahdi-commits
mailing list