From 9899bafe997a4e020f302c99a6e025b4e8b25191 Mon Sep 17 00:00:00 2001 From: tzafrir Date: Thu, 10 Jan 2008 18:12:27 +0000 Subject: 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 --- xpp/card_global.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'xpp/card_global.c') diff --git a/xpp/card_global.c b/xpp/card_global.c index a2c4ac0..05f4008 100644 --- a/xpp/card_global.c +++ b/xpp/card_global.c @@ -78,7 +78,10 @@ int xpp_register_request(xbus_t *xbus, xpd_t *xpd, regnum, subreg, data_low, data_high); reg_cmd = &RPACKET_FIELD(pack, GLOBAL, REGISTER_REQUEST, reg_cmd); reg_cmd->bytes = sizeof(*reg_cmd) - 1; // do not count the 'bytes' field + reg_cmd->eoframe = 0; + reg_cmd->multibyte = 0; REG_FIELD(reg_cmd, chipsel) = chipsel; + REG_FIELD(reg_cmd, reserved) = 0; /* force reserved bits to 0 */ REG_FIELD(reg_cmd, read_request) = (writing) ? 0 : 1; REG_FIELD(reg_cmd, do_subreg) = do_subreg; REG_FIELD(reg_cmd, regnum) = regnum; @@ -137,11 +140,10 @@ HANDLER_DEF(GLOBAL, DEV_DESC) struct card_desc_struct *card_desc; BUG_ON(!xbus); - if((card_desc = kmalloc(sizeof(struct card_desc_struct), GFP_ATOMIC)) == NULL) { + if((card_desc = KZALLOC(sizeof(struct card_desc_struct), GFP_ATOMIC)) == NULL) { XBUS_ERR(xbus, "Card description allocation failed.\n"); return -ENOMEM; } - memset(card_desc, 0, sizeof(struct card_desc_struct)); card_desc->magic = CARD_DESC_MAGIC; INIT_LIST_HEAD(&card_desc->card_list); card_desc->xbus = xbus; @@ -168,7 +170,7 @@ HANDLER_DEF(GLOBAL, REGISTER_REPLY) if(!xpd) { XBUS_NOTICE(xbus, "%s: received %s for non-existing unit (%1d%1d)\n", __FUNCTION__, cmd->name, - XPACKET_ADDR(pack).unit, XPACKET_ADDR(pack).subunit); + XPACKET_ADDR_UNIT(pack), XPACKET_ADDR_SUBUNIT(pack)); return -EPROTO; } return CALL_XMETHOD(card_register_reply, xbus, xpd, reg); @@ -205,7 +207,7 @@ HANDLER_DEF(GLOBAL, ERROR_CODE) return 0; if(!xpd) { snprintf(tmp_name, TMP_NAME_LEN, "%s(%1d%1d)", xbus->busname, - XPACKET_ADDR(pack).unit, XPACKET_ADDR(pack).subunit); + XPACKET_ADDR_UNIT(pack), XPACKET_ADDR_SUBUNIT(pack)); } else { snprintf(tmp_name, TMP_NAME_LEN, "%s/%s", xbus->busname, xpd->xpdname); } -- cgit v1.2.3