diff --git a/components/esp_hw_support/linker.lf b/components/esp_hw_support/linker.lf index 4854f086a3c..3d9fdc98208 100644 --- a/components/esp_hw_support/linker.lf +++ b/components/esp_hw_support/linker.lf @@ -27,6 +27,8 @@ entries: if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE != y: pmu_sleep:pmu_sleep_start (noflash) pmu_sleep:pmu_sleep_finish (noflash) + if SOC_PM_RETENTION_HAS_CLOCK_BUG = y && ESP_PHY_MAC_BB_PD = y: + pmu_sleep:pmu_sleep_pll_already_enabled (noflash) pmu_sleep:pmu_sleep_get_wakup_retention_cost (noflash) sleep_mspi (noflash) if SPIRAM_FLASH_LOAD_TO_PSRAM = y: diff --git a/components/esp_hw_support/lowpower/port/esp32c6/sleep_phy.c b/components/esp_hw_support/lowpower/port/esp32c6/sleep_phy.c index d079b98f8d6..a53896f042a 100644 --- a/components/esp_hw_support/lowpower/port/esp32c6/sleep_phy.c +++ b/components/esp_hw_support/lowpower/port/esp32c6/sleep_phy.c @@ -119,7 +119,7 @@ esp_err_t sleep_phy_link_init(void **link_context) wifi_modem_config[24].write_wait.value = phy_ana_i2c_master_burst_rf_onoff(false); void *link = NULL; - for (int i = ARRAY_SIZE(wifi_modem_config) - 1; (err == ESP_OK) && (i >= 0); i--) { + for (int i = ARRAY_SIZE(wifi_modem_config_template) - 1; (err == ESP_OK) && (i >= 0); i--) { void *next = regdma_link_init_safe(&wifi_modem_config[i], false, 0, link); if (next) { link = next;