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_global.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_global.c')
-rw-r--r-- | xpp/card_global.c | 10 |
1 files changed, 6 insertions, 4 deletions
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); } |