]> granicus.if.org Git - esp-idf/commitdiff
sdmmc: print error status only once
authorIvan Grokhotkov <ivan@espressif.com>
Tue, 6 Mar 2018 08:21:28 +0000 (16:21 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Wed, 11 Apr 2018 03:06:50 +0000 (11:06 +0800)
components/driver/sdmmc_transaction.c

index 7039b74e72c1fa1a9e59396db15be21f00fbbff6..c62d7891401ef227fb601423bca87c28203c032d 100644 (file)
@@ -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);
     }
 }