From 01cd2fce735894d380913abe7b2cf04d9cf82ad5 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Tue, 6 Mar 2018 16:21:28 +0800 Subject: [PATCH] sdmmc: print error status only once --- components/driver/sdmmc_transaction.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/components/driver/sdmmc_transaction.c b/components/driver/sdmmc_transaction.c index 7039b74e72..c62d789140 100644 --- a/components/driver/sdmmc_transaction.c +++ b/components/driver/sdmmc_transaction.c @@ -287,20 +287,22 @@ static void process_command_response(uint32_t status, sdmmc_command_t* cmd) cmd->response[3] = 0; } } + esp_err_t err = ESP_OK; if (status & SDMMC_INTMASK_RTO) { // response timeout is only possible when response is expected assert(cmd->flags & SCF_RSP_PRESENT); - cmd->error = ESP_ERR_TIMEOUT; + err = ESP_ERR_TIMEOUT; } else if ((cmd->flags & SCF_RSP_CRC) && (status & SDMMC_INTMASK_RCRC)) { - cmd->error = ESP_ERR_INVALID_CRC; + err = ESP_ERR_INVALID_CRC; } else if (status & SDMMC_INTMASK_RESP_ERR) { - cmd->error = ESP_ERR_INVALID_RESPONSE; + err = ESP_ERR_INVALID_RESPONSE; } - if (cmd->error != ESP_OK) { + if (err != ESP_OK) { + cmd->error = err; if (cmd->data) { sdmmc_host_dma_stop(); } - ESP_LOGD(TAG, "%s: error 0x%x (status=%08x)", __func__, cmd->error, status); + ESP_LOGD(TAG, "%s: error 0x%x (status=%08x)", __func__, err, status); } }