diff --git a/components/esp_driver_sdmmc/src/sd_host_sdmmc.c b/components/esp_driver_sdmmc/src/sd_host_sdmmc.c index e5ab29b84d..9fa2eb95f3 100644 --- a/components/esp_driver_sdmmc/src/sd_host_sdmmc.c +++ b/components/esp_driver_sdmmc/src/sd_host_sdmmc.c @@ -373,9 +373,11 @@ static esp_err_t sd_host_del_sdmmc_controller(sd_host_ctlr_handle_t ctlr) if (ctlr_ctx->io_intr_sem) { vSemaphoreDeleteWithCaps(ctlr_ctx->io_intr_sem); } +#if CONFIG_PM_ENABLE if (ctlr_ctx->pm_lock) { esp_pm_lock_delete(ctlr_ctx->pm_lock); } +#endif free(ctlr_ctx->dma_desc); ctlr_ctx->dma_desc = NULL; diff --git a/components/esp_driver_sdmmc/src/sd_trans_sdmmc.c b/components/esp_driver_sdmmc/src/sd_trans_sdmmc.c index 0874bfb688..0c6af0e83c 100644 --- a/components/esp_driver_sdmmc/src/sd_trans_sdmmc.c +++ b/components/esp_driver_sdmmc/src/sd_trans_sdmmc.c @@ -482,9 +482,11 @@ esp_err_t sd_host_slot_sdmmc_do_transaction(sd_host_slot_handle_t slot, sdmmc_co sd_host_sdmmc_slot_t *slot_ctx = __containerof(slot, sd_host_sdmmc_slot_t, drv); xSemaphoreTake(slot_ctx->ctlr->mutex, portMAX_DELAY); +#if CONFIG_PM_ENABLE if (slot_ctx->ctlr->pm_lock) { ESP_GOTO_ON_ERROR(esp_pm_lock_acquire(slot_ctx->ctlr->pm_lock), out, TAG, "acquire pm_lock failed"); } +#endif slot_ctx->ctlr->cur_slot_id = slot_ctx->slot_id; // By default, set probing frequency (400kHz) and 1-bit bus @@ -579,9 +581,11 @@ esp_err_t sd_host_slot_sdmmc_do_transaction(sd_host_slot_handle_t slot, sdmmc_co #endif out: +#if CONFIG_PM_ENABLE if (slot_ctx->ctlr->pm_lock) { ESP_RETURN_ON_ERROR(esp_pm_lock_release(slot_ctx->ctlr->pm_lock), TAG, "release pm_lock failed"); } +#endif xSemaphoreGive(slot_ctx->ctlr->mutex); return ret;