mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04: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:
commit
dd5d452428
@ -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.
|
||||||
*
|
*
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 7586abbf591ab63d609d7afeb377559deabec808
|
Subproject commit fe7dc9599bd318518eccc165d9e751114e28e7d2
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user