|
@@ -211,7 +211,7 @@ int mmc_wait_for_app_cmd(struct mmc_host *host, unsigned int rca,
|
|
|
|
|
|
appcmd.opcode = MMC_APP_CMD;
|
|
|
appcmd.arg = rca << 16;
|
|
|
- appcmd.flags = MMC_RSP_R1;
|
|
|
+ appcmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
|
|
appcmd.retries = 0;
|
|
|
memset(appcmd.resp, 0, sizeof(appcmd.resp));
|
|
|
appcmd.data = NULL;
|
|
@@ -331,7 +331,7 @@ static int mmc_select_card(struct mmc_host *host, struct mmc_card *card)
|
|
|
|
|
|
cmd.opcode = MMC_SELECT_CARD;
|
|
|
cmd.arg = card->rca << 16;
|
|
|
- cmd.flags = MMC_RSP_R1;
|
|
|
+ cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
|
|
|
if (err != MMC_ERR_NONE)
|
|
@@ -358,7 +358,7 @@ static int mmc_select_card(struct mmc_host *host, struct mmc_card *card)
|
|
|
struct mmc_command cmd;
|
|
|
cmd.opcode = SD_APP_SET_BUS_WIDTH;
|
|
|
cmd.arg = SD_BUS_WIDTH_4;
|
|
|
- cmd.flags = MMC_RSP_R1;
|
|
|
+ cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
|
|
|
|
|
err = mmc_wait_for_app_cmd(host, card->rca, &cmd,
|
|
|
CMD_RETRIES);
|
|
@@ -386,7 +386,7 @@ static void mmc_deselect_cards(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = MMC_SELECT_CARD;
|
|
|
cmd.arg = 0;
|
|
|
- cmd.flags = MMC_RSP_NONE;
|
|
|
+ cmd.flags = MMC_RSP_NONE | MMC_CMD_AC;
|
|
|
|
|
|
mmc_wait_for_cmd(host, &cmd, 0);
|
|
|
}
|
|
@@ -677,7 +677,7 @@ static void mmc_idle_cards(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = MMC_GO_IDLE_STATE;
|
|
|
cmd.arg = 0;
|
|
|
- cmd.flags = MMC_RSP_NONE;
|
|
|
+ cmd.flags = MMC_RSP_NONE | MMC_CMD_BC;
|
|
|
|
|
|
mmc_wait_for_cmd(host, &cmd, 0);
|
|
|
|
|
@@ -738,7 +738,7 @@ static int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
|
|
|
|
|
|
cmd.opcode = MMC_SEND_OP_COND;
|
|
|
cmd.arg = ocr;
|
|
|
- cmd.flags = MMC_RSP_R3;
|
|
|
+ cmd.flags = MMC_RSP_R3 | MMC_CMD_BCR;
|
|
|
|
|
|
for (i = 100; i; i--) {
|
|
|
err = mmc_wait_for_cmd(host, &cmd, 0);
|
|
@@ -766,7 +766,7 @@ static int mmc_send_app_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr)
|
|
|
|
|
|
cmd.opcode = SD_APP_OP_COND;
|
|
|
cmd.arg = ocr;
|
|
|
- cmd.flags = MMC_RSP_R3;
|
|
|
+ cmd.flags = MMC_RSP_R3 | MMC_CMD_BCR;
|
|
|
|
|
|
for (i = 100; i; i--) {
|
|
|
err = mmc_wait_for_app_cmd(host, 0, &cmd, CMD_RETRIES);
|
|
@@ -805,7 +805,7 @@ static void mmc_discover_cards(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = MMC_ALL_SEND_CID;
|
|
|
cmd.arg = 0;
|
|
|
- cmd.flags = MMC_RSP_R2;
|
|
|
+ cmd.flags = MMC_RSP_R2 | MMC_CMD_BCR;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
|
|
|
if (err == MMC_ERR_TIMEOUT) {
|
|
@@ -835,7 +835,7 @@ static void mmc_discover_cards(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = SD_SEND_RELATIVE_ADDR;
|
|
|
cmd.arg = 0;
|
|
|
- cmd.flags = MMC_RSP_R6;
|
|
|
+ cmd.flags = MMC_RSP_R6 | MMC_CMD_BCR;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
|
|
|
if (err != MMC_ERR_NONE)
|
|
@@ -856,7 +856,7 @@ static void mmc_discover_cards(struct mmc_host *host)
|
|
|
} else {
|
|
|
cmd.opcode = MMC_SET_RELATIVE_ADDR;
|
|
|
cmd.arg = card->rca << 16;
|
|
|
- cmd.flags = MMC_RSP_R1;
|
|
|
+ cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
|
|
|
if (err != MMC_ERR_NONE)
|
|
@@ -878,7 +878,7 @@ static void mmc_read_csds(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = MMC_SEND_CSD;
|
|
|
cmd.arg = card->rca << 16;
|
|
|
- cmd.flags = MMC_RSP_R2;
|
|
|
+ cmd.flags = MMC_RSP_R2 | MMC_CMD_AC;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
|
|
|
if (err != MMC_ERR_NONE) {
|
|
@@ -920,7 +920,7 @@ static void mmc_read_scrs(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = MMC_APP_CMD;
|
|
|
cmd.arg = card->rca << 16;
|
|
|
- cmd.flags = MMC_RSP_R1;
|
|
|
+ cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, 0);
|
|
|
if ((err != MMC_ERR_NONE) || !(cmd.resp[0] & R1_APP_CMD)) {
|
|
@@ -932,7 +932,7 @@ static void mmc_read_scrs(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = SD_APP_SEND_SCR;
|
|
|
cmd.arg = 0;
|
|
|
- cmd.flags = MMC_RSP_R1;
|
|
|
+ cmd.flags = MMC_RSP_R1 | MMC_CMD_ADTC;
|
|
|
|
|
|
memset(&data, 0, sizeof(struct mmc_data));
|
|
|
|
|
@@ -1003,7 +1003,7 @@ static void mmc_check_cards(struct mmc_host *host)
|
|
|
|
|
|
cmd.opcode = MMC_SEND_STATUS;
|
|
|
cmd.arg = card->rca << 16;
|
|
|
- cmd.flags = MMC_RSP_R1;
|
|
|
+ cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
|
|
|
|
|
|
err = mmc_wait_for_cmd(host, &cmd, CMD_RETRIES);
|
|
|
if (err == MMC_ERR_NONE)
|