]> granicus.if.org Git - esp-idf/commitdiff
fatfs: fix deinit not called for SDSPI host
authorIvan Grokhotkov <ivan@espressif.com>
Fri, 8 Dec 2017 04:17:58 +0000 (12:17 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Mon, 11 Dec 2017 03:07:08 +0000 (11:07 +0800)
Closes https://github.com/espressif/esp-idf/issues/1362

components/fatfs/src/vfs_fat_sdmmc.c

index a712fa9733550697beb19105da3111de99f6d422..68751cb50f899821e5c39b4195cdd00dda8d4978 100644 (file)
@@ -139,7 +139,7 @@ esp_err_t esp_vfs_fat_sdmmc_mount(const char* base_path,
     return ESP_OK;
 
 fail:
-    sdmmc_host_deinit();
+    host_config->deinit();
     free(workbuf);
     if (fs) {
         f_mount(NULL, drv, 0);
@@ -160,10 +160,11 @@ esp_err_t esp_vfs_fat_sdmmc_unmount()
     char drv[3] = {(char)('0' + s_pdrv), ':', 0};
     f_mount(0, drv, 0);
     // release SD driver
+    esp_err_t (*host_deinit)() = s_card->host.deinit;
     ff_diskio_unregister(s_pdrv);
     free(s_card);
     s_card = NULL;
-    sdmmc_host_deinit();
+    (*host_deinit)();
     esp_err_t err = esp_vfs_fat_unregister_path(s_base_path);
     free(s_base_path);
     s_base_path = NULL;