Merge branch 'bugfix/fix_tx_issue_after_esp_restart' into 'master'

components/bt: Shutdown Bluetooth before esp_restart.

See merge request espressif/esp-idf!11698
pull/6416/head
Jiang Jiang Jian 2021-01-06 12:32:03 +08:00
commit eb9c2d584f
2 zmienionych plików z 23 dodań i 1 usunięć

Wyświetl plik

@ -1439,6 +1439,23 @@ esp_err_t esp_bt_controller_deinit(void)
return ESP_OK;
}
static void bt_shutdown(void)
{
esp_err_t ret = ESP_OK;
ESP_LOGD(BTDM_LOG_TAG, "stop/deinit bt");
ret = esp_bt_controller_disable();
if (ESP_OK != ret) {
ESP_LOGW(BTDM_LOG_TAG, "controller disable ret=%d", ret);
}
ret = esp_bt_controller_deinit();
if (ESP_OK != ret) {
ESP_LOGW(BTDM_LOG_TAG, "controller deinit ret=%d", ret);
}
return;
}
esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
{
int ret;
@ -1488,6 +1505,10 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
}
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_ENABLED;
ret = esp_register_shutdown_handler(bt_shutdown);
if (ret != ESP_OK) {
ESP_LOGW(BTDM_LOG_TAG, "Register shutdown handler failed, ret = 0x%x", ret);
}
return ESP_OK;
}
@ -1515,6 +1536,7 @@ esp_err_t esp_bt_controller_disable(void)
esp_phy_disable();
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
esp_unregister_shutdown_handler(bt_shutdown);
#ifdef CONFIG_PM_ENABLE
if (!s_btdm_allow_light_sleep) {

Wyświetl plik

@ -17,7 +17,7 @@
#endif
#define SHUTDOWN_HANDLERS_NO 3
#define SHUTDOWN_HANDLERS_NO 4
static shutdown_handler_t shutdown_handlers[SHUTDOWN_HANDLERS_NO];
esp_err_t esp_register_shutdown_handler(shutdown_handler_t handler)