From 84d6793f77af9345ea07d126ed03cc8e3f0c57f5 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 18 Aug 2017 00:12:05 +0800 Subject: [PATCH] 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. --- components/driver/sdmmc_transaction.c | 4 ---- components/sdmmc/sdmmc_cmd.c | 6 ------ 2 files changed, 10 deletions(-) diff --git a/components/driver/sdmmc_transaction.c b/components/driver/sdmmc_transaction.c index 31e76ac6d..78e3e2872 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 2c58843c2..612399083 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 */