From: Ivan Grokhotkov Date: Thu, 17 Aug 2017 16:12:05 +0000 (+0800) Subject: sdmmc: don't set data_expected on SET_BUS_WIDTH command X-Git-Tag: v3.1-beta1~274^2~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=84d6793f77af9345ea07d126ed03cc8e3f0c57f5;p=esp-idf sdmmc: don't set data_expected on SET_BUS_WIDTH command SET_BUS_WIDTH is not a data transfer command. Extensive search in the host datasheet and SD card spec did not reveal the origin of this hack or 'feature'. Further testing showed that removing this does not lead to regressions. --- diff --git a/components/driver/sdmmc_transaction.c b/components/driver/sdmmc_transaction.c index 31e76ac6d9..78e3e28723 100644 --- a/components/driver/sdmmc_transaction.c +++ b/components/driver/sdmmc_transaction.c @@ -246,10 +246,6 @@ static sdmmc_hw_cmd_t make_hw_cmd(sdmmc_command_t* cmd) } else { res.wait_complete = 1; } - if (s_is_app_cmd && cmd->opcode == SD_APP_SET_BUS_WIDTH) { - res.send_auto_stop = 1; - res.data_expected = 1; - } if (cmd->opcode == MMC_GO_IDLE_STATE) { res.send_init = 1; } diff --git a/components/sdmmc/sdmmc_cmd.c b/components/sdmmc/sdmmc_cmd.c index 2c58843c2d..6123990833 100644 --- a/components/sdmmc/sdmmc_cmd.c +++ b/components/sdmmc/sdmmc_cmd.c @@ -244,12 +244,6 @@ esp_err_t sdmmc_card_init(const sdmmc_host_t* config, sdmmc_card_t* card) ESP_LOGE(TAG, "slot->set_bus_width failed"); return err; } - uint32_t status; - err = sdmmc_send_cmd_stop_transmission(card, &status); - if (err != ESP_OK) { - ESP_LOGE(TAG, "stop_transmission failed (0x%x)", err); - return err; - } } /* Wait for the card to be ready for data transfers */