/* not for user call, so don't put to include file */
extern void btdm_osi_funcs_register(void *osi_funcs);
extern int btdm_controller_init(uint32_t config_mask, esp_bt_controller_config_t *config_opts);
-extern int btdm_controller_deinit(void);
+extern void btdm_controller_deinit(void);
extern int btdm_controller_enable(esp_bt_mode_t mode);
-extern int btdm_controller_disable(esp_bt_mode_t mode);
+extern void btdm_controller_disable(void);
extern uint8_t btdm_controller_get_mode(void);
extern const char *btdm_controller_get_compile_version(void);
extern void btdm_rf_bb_init(void);
return ESP_ERR_INVALID_STATE;
}
- if (btdm_controller_deinit() != 0) {
- return ESP_ERR_NO_MEM;
- }
+ btdm_controller_deinit();
periph_module_disable(PERIPH_BT_MODULE);
esp_modem_sleep_deregister(MODEM_BLE_MODULE);
}
esp_phy_rf_deinit(PHY_BT_MODULE);
+#ifdef CONFIG_PM_ENABLE
+ esp_pm_lock_release(s_pm_lock);
+#endif
return ESP_ERR_INVALID_STATE;
}
esp_err_t esp_bt_controller_disable(void)
{
- int ret;
-
if (btdm_controller_status != ESP_BT_CONTROLLER_STATUS_ENABLED) {
return ESP_ERR_INVALID_STATE;
}
}
}
- ret = btdm_controller_disable(btdm_controller_get_mode());
- if (ret < 0) {
- return ESP_ERR_INVALID_STATE;
- }
+ btdm_controller_disable();
- if (ret == ESP_BT_MODE_IDLE) {
- if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE
- || btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
- esp_modem_sleep_deregister(MODEM_BLE_MODULE);
- esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
- } else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
- esp_modem_sleep_deregister(MODEM_BLE_MODULE);
- }
- esp_phy_rf_deinit(PHY_BT_MODULE);
- btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
+ if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_NONE
+ || btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_ORIG) {
+ esp_modem_sleep_deregister(MODEM_BLE_MODULE);
+ esp_modem_sleep_deregister(MODEM_CLASSIC_BT_MODULE);
+ } else if (btdm_controller_get_sleep_mode() == BTDM_MODEM_SLEEP_MODE_EVED) {
+ esp_modem_sleep_deregister(MODEM_BLE_MODULE);
}
+ esp_phy_rf_deinit(PHY_BT_MODULE);
+ btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
#ifdef CONFIG_PM_ENABLE
esp_pm_lock_release(s_pm_lock);