summaryrefslogtreecommitdiff
path: root/xpp/xproto.c
diff options
context:
space:
mode:
authortzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-01-10 18:12:27 +0000
committertzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2008-01-10 18:12:27 +0000
commit9899bafe997a4e020f302c99a6e025b4e8b25191 (patch)
tree8a108b05d0f319c95ba83f1d5984ae261572bebf /xpp/xproto.c
parent1d7d5b07325a186785b22abf09ff531dfc2edd54 (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.c20
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);