diff options
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); } |