在mmc代码的mmc_blk_issue_rq函数中有如下一段代码:
do {
int err; cmd.opcode = MMC_SEND_STATUS;
cmd.arg = card->rca << 16;
cmd.flags = MMC_RSP_R1 | MMC_CMD_AC; err = mmc_wait_for_cmd(card->host, &cmd, 5);
if (err) {
printk(KERN_ERR "%s: error %d requesting status\n",
req->rq_disk->disk_name, err);
goto cmd_err;
} } while (!(cmd.resp[0] & R1_READY_FOR_DATA) ||
(R1_CURRENT_STATE(cmd.resp[0]) == 7));
从代码中可以看出cmd.resp[0]是在调用mmc_wait_for_cmd函数时发生改变的。但我跟踪mmc_wait_for_cmd函数时,最终并未发现它改变过cmd.resp[0]。哪位大侠可以告诉我cmd.resp[0]到底是在哪里改变的?????
do {
int err; cmd.opcode = MMC_SEND_STATUS;
cmd.arg = card->rca << 16;
cmd.flags = MMC_RSP_R1 | MMC_CMD_AC; err = mmc_wait_for_cmd(card->host, &cmd, 5);
if (err) {
printk(KERN_ERR "%s: error %d requesting status\n",
req->rq_disk->disk_name, err);
goto cmd_err;
} } while (!(cmd.resp[0] & R1_READY_FOR_DATA) ||
(R1_CURRENT_STATE(cmd.resp[0]) == 7));
从代码中可以看出cmd.resp[0]是在调用mmc_wait_for_cmd函数时发生改变的。但我跟踪mmc_wait_for_cmd函数时,最终并未发现它改变过cmd.resp[0]。哪位大侠可以告诉我cmd.resp[0]到底是在哪里改变的?????
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货