mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 12:14:32 +02:00
Merge branch 'bugfix/power_down_bluetooth_module_when_deinit_v4.4' into 'release/v4.4'
component/bt: Power down bluetooth module when deinit See merge request espressif/esp-idf!15717
This commit is contained in:
@@ -37,6 +37,7 @@
|
|||||||
#include "esp32c3/rom/rom_layout.h"
|
#include "esp32c3/rom/rom_layout.h"
|
||||||
#include "esp_timer.h"
|
#include "esp_timer.h"
|
||||||
#include "esp_sleep.h"
|
#include "esp_sleep.h"
|
||||||
|
#include "phy.h"
|
||||||
|
|
||||||
#if CONFIG_BT_ENABLED
|
#if CONFIG_BT_ENABLED
|
||||||
|
|
||||||
@@ -1237,6 +1238,11 @@ esp_err_t esp_bt_controller_deinit(void)
|
|||||||
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
|
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Fix the issue caused by the power off the bt power domain.
|
||||||
|
* This issue is only on ESP32C3.
|
||||||
|
*/
|
||||||
|
phy_init_flag();
|
||||||
|
|
||||||
esp_bt_power_domain_off();
|
esp_bt_power_domain_off();
|
||||||
|
|
||||||
free(osi_funcs_p);
|
free(osi_funcs_p);
|
||||||
|
@@ -1144,8 +1144,6 @@ error:
|
|||||||
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
|
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
esp_bt_power_domain_off();
|
|
||||||
|
|
||||||
if (osi_funcs_p != NULL) {
|
if (osi_funcs_p != NULL) {
|
||||||
free(osi_funcs_p);
|
free(osi_funcs_p);
|
||||||
osi_funcs_p = NULL;
|
osi_funcs_p = NULL;
|
||||||
@@ -1206,6 +1204,9 @@ esp_err_t esp_bt_controller_deinit(void)
|
|||||||
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
|
esp_unregister_mac_bb_pd_callback(btdm_mac_bb_power_down_cb);
|
||||||
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
|
esp_unregister_mac_bb_pu_callback(btdm_mac_bb_power_up_cb);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
esp_bt_power_domain_off();
|
||||||
|
|
||||||
free(osi_funcs_p);
|
free(osi_funcs_p);
|
||||||
osi_funcs_p = NULL;
|
osi_funcs_p = NULL;
|
||||||
|
|
||||||
|
@@ -68,6 +68,13 @@ void phy_close_rf(void);
|
|||||||
void phy_xpd_tsens(void);
|
void phy_xpd_tsens(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32C3
|
||||||
|
/**
|
||||||
|
* @brief Update internal state of PHY when wifi deinit powers off the wifi power domain.
|
||||||
|
*/
|
||||||
|
void phy_init_flag(void);
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Store and load PHY digital registers.
|
* @brief Store and load PHY digital registers.
|
||||||
*
|
*
|
||||||
|
Submodule components/esp_phy/lib updated: 7586abbf59...fe7dc9599b
@@ -19,6 +19,7 @@
|
|||||||
#include "driver/adc2_wifi_private.h"
|
#include "driver/adc2_wifi_private.h"
|
||||||
#include "esp_coexist_internal.h"
|
#include "esp_coexist_internal.h"
|
||||||
#include "esp_phy_init.h"
|
#include "esp_phy_init.h"
|
||||||
|
#include "phy.h"
|
||||||
|
|
||||||
#if (CONFIG_ESP32_WIFI_RX_BA_WIN > CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM)
|
#if (CONFIG_ESP32_WIFI_RX_BA_WIN > CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM)
|
||||||
#error "WiFi configuration check: WARNING, WIFI_RX_BA_WIN should not be larger than WIFI_DYNAMIC_RX_BUFFER_NUM!"
|
#error "WiFi configuration check: WARNING, WIFI_RX_BA_WIN should not be larger than WIFI_DYNAMIC_RX_BUFFER_NUM!"
|
||||||
@@ -124,6 +125,9 @@ esp_err_t esp_wifi_deinit(void)
|
|||||||
#if CONFIG_MAC_BB_PD
|
#if CONFIG_MAC_BB_PD
|
||||||
esp_unregister_mac_bb_pd_callback(pm_mac_sleep);
|
esp_unregister_mac_bb_pd_callback(pm_mac_sleep);
|
||||||
esp_unregister_mac_bb_pu_callback(pm_mac_wakeup);
|
esp_unregister_mac_bb_pu_callback(pm_mac_wakeup);
|
||||||
|
#endif
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32C3
|
||||||
|
phy_init_flag();
|
||||||
#endif
|
#endif
|
||||||
esp_wifi_power_domain_off();
|
esp_wifi_power_domain_off();
|
||||||
return err;
|
return err;
|
||||||
|
Reference in New Issue
Block a user