From: Ivan Grokhotkov Date: Tue, 6 Mar 2018 08:21:28 +0000 (+0800) Subject: sdmmc: print error status only once X-Git-Tag: v3.1-beta1~274^2~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=01cd2fce735894d380913abe7b2cf04d9cf82ad5;p=esp-idf sdmmc: print error status only once --- 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); } }