diff options
author | Shaun Ruffell <sruffell@digium.com> | 2010-09-23 21:38:37 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2010-09-23 21:38:37 +0000 |
commit | 39fdf68a09021f68819ee2e5fbe99a2a85d18f2b (patch) | |
tree | fbecd392bbd92859cd0363e7b422f95c2c09b793 /drivers/dahdi | |
parent | 1dd703f49d97690e451d6db50832815828bfe56f (diff) |
wct4xxp: Add debug option to log detected RBS bit changes.
Normally you can see RBS bit states in dahdi_tool, but you might also
want them logged to dmesg for troubleshooting.
(issue #18025)
Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9399 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi')
-rw-r--r-- | drivers/dahdi/wct4xxp/base.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/drivers/dahdi/wct4xxp/base.c b/drivers/dahdi/wct4xxp/base.c index 112604d..9ea4b57 100644 --- a/drivers/dahdi/wct4xxp/base.c +++ b/drivers/dahdi/wct4xxp/base.c @@ -3006,6 +3006,19 @@ static void t4_transmitprep(struct t4 *wc, int irq) } #endif +static void t4_dahdi_rbsbits(struct dahdi_chan *const chan, int rxs) +{ + if ((debug & DEBUG_RBS) && printk_ratelimit()) { + const struct t4_span *tspan = container_of(chan->span, + struct t4_span, + span); + const struct t4 *const wc = tspan->owner; + dev_notice(&wc->dev->dev, "Detected sigbits change on " \ + "channel %s to %04x\n", chan->name, rxs); + } + dahdi_rbsbits(chan, rxs); +} + static void t4_check_sigbits(struct t4 *wc, int span) { int a,i,rxs; @@ -3024,12 +3037,12 @@ static void t4_check_sigbits(struct t4 *wc, int span) rxs = (a & 0xf); if (!(ts->span.chans[i+16]->sig & DAHDI_SIG_CLEAR)) { if (ts->span.chans[i+16]->rxsig != rxs) - dahdi_rbsbits(ts->span.chans[i+16], rxs); + t4_dahdi_rbsbits(ts->span.chans[i+16], rxs); } rxs = (a >> 4) & 0xf; if (!(ts->span.chans[i]->sig & DAHDI_SIG_CLEAR)) { if (ts->span.chans[i]->rxsig != rxs) - dahdi_rbsbits(ts->span.chans[i], rxs); + t4_dahdi_rbsbits(ts->span.chans[i], rxs); } } } else if (ts->span.lineconfig & DAHDI_CONFIG_D4) { @@ -3039,22 +3052,22 @@ static void t4_check_sigbits(struct t4 *wc, int span) rxs = (a & 0x3) << 2; if (!(ts->span.chans[i+3]->sig & DAHDI_SIG_CLEAR)) { if (ts->span.chans[i+3]->rxsig != rxs) - dahdi_rbsbits(ts->span.chans[i+3], rxs); + t4_dahdi_rbsbits(ts->span.chans[i+3], rxs); } rxs = (a & 0xc); if (!(ts->span.chans[i+2]->sig & DAHDI_SIG_CLEAR)) { if (ts->span.chans[i+2]->rxsig != rxs) - dahdi_rbsbits(ts->span.chans[i+2], rxs); + t4_dahdi_rbsbits(ts->span.chans[i+2], rxs); } rxs = (a >> 2) & 0xc; if (!(ts->span.chans[i+1]->sig & DAHDI_SIG_CLEAR)) { if (ts->span.chans[i+1]->rxsig != rxs) - dahdi_rbsbits(ts->span.chans[i+1], rxs); + t4_dahdi_rbsbits(ts->span.chans[i+1], rxs); } rxs = (a >> 4) & 0xc; if (!(ts->span.chans[i]->sig & DAHDI_SIG_CLEAR)) { if (ts->span.chans[i]->rxsig != rxs) - dahdi_rbsbits(ts->span.chans[i], rxs); + t4_dahdi_rbsbits(ts->span.chans[i], rxs); } } } else { @@ -3065,14 +3078,14 @@ static void t4_check_sigbits(struct t4 *wc, int span) if (!(ts->span.chans[i+1]->sig & DAHDI_SIG_CLEAR)) { /* XXX Not really reset on every trans! XXX */ if (ts->span.chans[i+1]->rxsig != rxs) { - dahdi_rbsbits(ts->span.chans[i+1], rxs); + t4_dahdi_rbsbits(ts->span.chans[i+1], rxs); } } rxs = (a >> 4) & 0xf; if (!(ts->span.chans[i]->sig & DAHDI_SIG_CLEAR)) { /* XXX Not really reset on every trans! XXX */ if (ts->span.chans[i]->rxsig != rxs) { - dahdi_rbsbits(ts->span.chans[i], rxs); + t4_dahdi_rbsbits(ts->span.chans[i], rxs); } } } |