在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]到底是在哪里改变的?????