diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-01-10 18:12:27 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-01-10 18:12:27 +0000 |
commit | 9899bafe997a4e020f302c99a6e025b4e8b25191 (patch) | |
tree | 8a108b05d0f319c95ba83f1d5984ae261572bebf /xpp/card_bri.c | |
parent | 1d7d5b07325a186785b22abf09ff531dfc2edd54 (diff) |
xpp.r5254:
* Improved polarity reversal hangups in FXO (r5194).
Fixed false detection of polarity reversals.
* Optimize xframe allocation, by not zeroing the whole
memory (in get_xframe()).
* Fixed erronous error message that appeared sometimes
from fpga_load during USB renumeration.
* Zaptel::Chans now provides battery() reporting for some FXO
channels (Astribank FXO and wcfxo).
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@3643 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/card_bri.c')
-rw-r--r-- | xpp/card_bri.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/xpp/card_bri.c b/xpp/card_bri.c index fb423a3..998d22a 100644 --- a/xpp/card_bri.c +++ b/xpp/card_bri.c @@ -151,7 +151,11 @@ typedef union { ) #define BRI_BCHAN_SIGCAP ZT_SIG_CLEAR -#define IS_NT(xpd) ((xpd)->type == XPD_TYPE_BRI_NT) +#define IS_NT(xpd) ((xpd)->type == XPD_TYPE_BRI_NT) + +/* shift in PCM highway */ +#define SUBUNIT_PCM_SHIFT 4 +#define PCM_SHIFT(mask, sunit) ((mask) << (SUBUNIT_PCM_SHIFT * (sunit))) /*---------------- BRI Protocol Commands ----------------------------------*/ @@ -723,7 +727,7 @@ static int BRI_card_zaptel_preregistration(xpd_t *xpd, bool on) for(i = 0; i < MAX_SUBUNIT; i++) { xpd_t *sub_xpd = xpd_byaddr(xbus, xpd->addr.unit, i); if(sub_xpd) { - tmp_pcm_mask |= (sub_xpd->wanted_pcm_mask << (SUBUNIT_PCM_SHIFT * i)); + tmp_pcm_mask |= PCM_SHIFT(sub_xpd->wanted_pcm_mask, i); line_count += 2; } } @@ -1077,7 +1081,7 @@ static void BRI_card_pcm_fromspan(xbus_t *xbus, xpd_t *xpd, xpp_line_t wanted_li pcm += ZT_CHUNKSIZE; } } - pcm_mask |= (wanted_lines << SUBUNIT_PCM_SHIFT * subunit); + pcm_mask |= PCM_SHIFT(wanted_lines, subunit); XPD_COUNTER(tmp_xpd, PCM_WRITE)++; spin_unlock_irqrestore(&tmp_xpd->lock, flags); } @@ -1399,6 +1403,7 @@ static xproto_table_t PROTO_TABLE(BRI_TE) = { .card_tick = BRI_card_tick, .card_pcm_fromspan = BRI_card_pcm_fromspan, .card_pcm_tospan = BRI_card_pcm_tospan, + .card_ioctl = BRI_card_ioctl, .card_close = BRI_card_close, .card_register_reply = BRI_card_register_reply, |