mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
fix(btbb): allow FE retention when wifi enhanced light sleep enabled
This commit is contained in:
@@ -71,9 +71,9 @@ static esp_err_t btbb_sleep_retention_enable(void)
|
|||||||
.attribute = SLEEP_RETENTION_MODULE_ATTR_ATTACH,
|
.attribute = SLEEP_RETENTION_MODULE_ATTR_ATTACH,
|
||||||
};
|
};
|
||||||
init_param.depends.bitmap[SLEEP_RETENTION_MODULE_CLOCK_MODEM >> 5] |= BIT(SLEEP_RETENTION_MODULE_CLOCK_MODEM % 32);
|
init_param.depends.bitmap[SLEEP_RETENTION_MODULE_CLOCK_MODEM >> 5] |= BIT(SLEEP_RETENTION_MODULE_CLOCK_MODEM % 32);
|
||||||
#if CONFIG_ESP_PHY_HW_SWITCH_RF
|
#if (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
init_param.depends.bitmap[SLEEP_RETENTION_MODULE_PHY_FE >> 5] |= BIT(SLEEP_RETENTION_MODULE_PHY_FE % 32);
|
init_param.depends.bitmap[SLEEP_RETENTION_MODULE_PHY_FE >> 5] |= BIT(SLEEP_RETENTION_MODULE_PHY_FE % 32);
|
||||||
#endif // CONFIG_ESP_PHY_HW_SWITCH_RF
|
#endif // (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
#if SOC_PM_MODEM_LOCK_CLK_WORKAROUND && CONFIG_BT_CTRL_SLEEP_ENABLE
|
#if SOC_PM_MODEM_LOCK_CLK_WORKAROUND && CONFIG_BT_CTRL_SLEEP_ENABLE
|
||||||
init_param.depends.bitmap[SLEEP_RETENTION_MODULE_POWER >> 5] |= BIT(SLEEP_RETENTION_MODULE_POWER % 32);
|
init_param.depends.bitmap[SLEEP_RETENTION_MODULE_POWER >> 5] |= BIT(SLEEP_RETENTION_MODULE_POWER % 32);
|
||||||
#endif
|
#endif
|
||||||
@@ -102,19 +102,19 @@ void esp_btbb_enable(void)
|
|||||||
bt_bb_v2_init_cmplx(BTBB_ENABLE_VERSION_PRINT);
|
bt_bb_v2_init_cmplx(BTBB_ENABLE_VERSION_PRINT);
|
||||||
#if SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
#if SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
||||||
esp_err_t err = ESP_OK;
|
esp_err_t err = ESP_OK;
|
||||||
#if CONFIG_ESP_PHY_HW_SWITCH_RF
|
#if (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
err = esp_phy_fe_sleep_data_init();
|
err = esp_phy_fe_sleep_data_init();
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
_lock_release(&s_btbb_access_lock);
|
_lock_release(&s_btbb_access_lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif // CONFIG_ESP_PHY_HW_SWITCH_RF
|
#endif // (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
err = btbb_sleep_retention_enable();
|
err = btbb_sleep_retention_enable();
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
btbb_sleep_retention_disable();
|
btbb_sleep_retention_disable();
|
||||||
#if CONFIG_ESP_PHY_HW_SWITCH_RF
|
#if (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
esp_phy_fe_sleep_data_deinit();
|
esp_phy_fe_sleep_data_deinit();
|
||||||
#endif // CONFIG_ESP_PHY_HW_SWITCH_RF
|
#endif // (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
_lock_release(&s_btbb_access_lock);
|
_lock_release(&s_btbb_access_lock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -130,9 +130,9 @@ void esp_btbb_disable(void)
|
|||||||
if (s_btbb_access_ref && (--s_btbb_access_ref == 0)) {
|
if (s_btbb_access_ref && (--s_btbb_access_ref == 0)) {
|
||||||
#if SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
#if SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
||||||
btbb_sleep_retention_disable();
|
btbb_sleep_retention_disable();
|
||||||
#if CONFIG_ESP_PHY_HW_SWITCH_RF
|
#if (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
esp_phy_fe_sleep_data_deinit();
|
esp_phy_fe_sleep_data_deinit();
|
||||||
#endif // CONFIG_ESP_PHY_HW_SWITCH_RF
|
#endif // (SOC_PM_SUPPORT_PMU_MODEM_STATE && CONFIG_ESP_WIFI_ENHANCED_LIGHT_SLEEP) || CONFIG_ESP_PHY_HW_SWITCH_RF
|
||||||
#endif // SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
#endif // SOC_PM_MODEM_RETENTION_BY_REGDMA && CONFIG_FREERTOS_USE_TICKLESS_IDLE
|
||||||
}
|
}
|
||||||
_lock_release(&s_btbb_access_lock);
|
_lock_release(&s_btbb_access_lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user