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/xproto.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/xproto.c')
-rw-r--r-- | xpp/xproto.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/xpp/xproto.c b/xpp/xproto.c index 83a66d8..d55949e 100644 --- a/xpp/xproto.c +++ b/xpp/xproto.c @@ -43,12 +43,6 @@ bool valid_xpd_addr(const struct xpd_addr *addr) return ((addr->subunit & ~BITMASK(SUBUNIT_BITS)) == 0) && ((addr->unit & ~BITMASK(UNIT_BITS)) == 0); } -void xpd_set_addr(struct xpd_addr *addr, int xpd_num) -{ - addr->unit = XBUS_UNIT(xpd_num); - addr->subunit = XBUS_SUBUNIT(xpd_num); -} - /*---------------- General Protocol Management ----------------------------*/ const xproto_entry_t *xproto_card_entry(const xproto_table_t *table, byte opcode) @@ -145,13 +139,13 @@ int packet_process(xbus_t *xbus, xpacket_t *pack) if(printk_ratelimit()) { XBUS_NOTICE(xbus, "%s: from %d%d: bad address.\n", __FUNCTION__, - XPACKET_ADDR(pack).unit, XPACKET_ADDR(pack).subunit); + XPACKET_ADDR_UNIT(pack), XPACKET_ADDR_SUBUNIT(pack)); dump_packet("packet_process -- bad address", pack, print_dbg); } goto out; } op = XPACKET_OP(pack); - xpd = xpd_byaddr(xbus, XPACKET_ADDR(pack).unit, XPACKET_ADDR(pack).subunit); + xpd = xpd_byaddr(xbus, XPACKET_ADDR_UNIT(pack), XPACKET_ADDR_SUBUNIT(pack)); /* XPD may be NULL (e.g: during bus polling */ xe = xproto_global_entry(op); /*-------- Validations -----------*/ @@ -162,7 +156,7 @@ int packet_process(xbus_t *xbus, xpacket_t *pack) if(printk_ratelimit()) { XBUS_NOTICE(xbus, "%s: from %d%d opcode=0x%02X: no such global command.\n", __FUNCTION__, - XPACKET_ADDR(pack).unit, XPACKET_ADDR(pack).subunit, op); + XPACKET_ADDR_UNIT(pack), XPACKET_ADDR_SUBUNIT(pack), op); dump_packet("packet_process -- no such global command", pack, 1); } goto out; @@ -263,6 +257,7 @@ int xframe_receive(xbus_t *xbus, xframe_t *xframe) XBUS_NOTICE(xbus, "short xframe\n"); dump_xframe("short xframe", xbus, xframe); } + FREE_RECV_XFRAME(xbus, xframe); return -EPROTO; } if(!XBUS_GET(xbus)) { @@ -299,9 +294,9 @@ void dump_packet(const char *msg, const xpacket_t *packet, bool print_dbg) return; printk(KERN_DEBUG "%s: XPD=%1X-%1X%c (0x%X) OP=0x%02X LEN=%d", msg, - XPACKET_ADDR(packet).unit, - XPACKET_ADDR(packet).subunit, - (XPACKET_ADDR(packet).sync_master)?'+':' ', + XPACKET_ADDR_UNIT(packet), + XPACKET_ADDR_SUBUNIT(packet), + (XPACKET_ADDR_SYNC(packet))?'+':' ', *addr, op, XPACKET_LEN(packet)); @@ -444,7 +439,6 @@ EXPORT_SYMBOL(dump_reg_cmd); EXPORT_SYMBOL(xframe_receive); EXPORT_SYMBOL(notify_bad_xpd); EXPORT_SYMBOL(valid_xpd_addr); -EXPORT_SYMBOL(xpd_set_addr); EXPORT_SYMBOL(xproto_global_entry); EXPORT_SYMBOL(xproto_card_entry); EXPORT_SYMBOL(xproto_name); |