1515
1616#include "sdkconfig.h"
1717
18+ #if CONFIG_BT_NIMBLE_ENABLED
1819#include "nimble/nimble_port.h"
20+ #endif // CONFIG_BT_NIMBLE_ENABLED
1921#include "nimble/nimble_port_freertos.h"
2022#include "esp_private/esp_modem_clock.h"
2123
2830#endif // CONFIG_SW_COEXIST_ENABLE
2931
3032#include "nimble/nimble_npl_os.h"
31- #include "nimble/ ble_hci_trans.h"
33+ #include "ble_hci_trans.h"
3234#include "os/endian.h"
3335
3436#include "esp_bt.h"
@@ -121,20 +123,20 @@ typedef void (*interface_func_t) (uint32_t len, const uint8_t*addr, bool end);
121123 ************************************************************************
122124 */
123125extern int ble_osi_coex_funcs_register (struct osi_coex_funcs_t * coex_funcs );
124- extern int ble_controller_init (esp_bt_controller_config_t * cfg );
126+ extern int r_ble_controller_init (esp_bt_controller_config_t * cfg );
125127#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
126128extern int r_ble_log_init_async (interface_func_t bt_controller_log_interface , bool task_create , uint8_t buffers , uint32_t * bufs_size );
127129extern int r_ble_log_deinit_async (void );
128130extern void r_ble_log_async_select_dump_buffers (uint8_t buffers );
129131extern void r_ble_log_async_output_dump_all (bool output );
130132extern void esp_panic_handler_reconfigure_wdts (uint32_t timeout_ms );
131133#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
132- extern int ble_controller_deinit (void );
133- extern int ble_controller_enable (uint8_t mode );
134- extern int ble_controller_disable (void );
134+ extern int r_ble_controller_deinit (void );
135+ extern int r_ble_controller_enable (uint8_t mode );
136+ extern int r_ble_controller_disable (void );
135137extern int esp_register_ext_funcs (struct ext_funcs_t * );
136138extern void esp_unregister_ext_funcs (void );
137- extern int esp_ble_ll_set_public_addr (const uint8_t * addr );
139+ extern int r_esp_ble_ll_set_public_addr (const uint8_t * addr );
138140extern int esp_register_npl_funcs (struct npl_funcs_t * p_npl_func );
139141extern void esp_unregister_npl_funcs (void );
140142extern void npl_freertos_mempool_deinit (void );
@@ -149,15 +151,17 @@ extern void os_msys_deinit(void);
149151extern const sleep_retention_entries_config_t * esp_ble_mac_retention_link_get (uint8_t * size , uint8_t extra );
150152extern void esp_ble_set_wakeup_overhead (uint32_t overhead );
151153#endif /* CONFIG_FREERTOS_USE_TICKLESS_IDLE */
152- extern void esp_ble_change_rtc_freq (uint32_t freq );
154+ extern void r_esp_ble_change_rtc_freq (uint32_t freq );
153155extern int ble_sm_alg_gen_dhkey (const uint8_t * peer_pub_key_x ,
154156 const uint8_t * peer_pub_key_y ,
155157 const uint8_t * our_priv_key , uint8_t * out_dhkey );
156158extern int ble_sm_alg_gen_key_pair (uint8_t * pub , uint8_t * priv );
157- extern int ble_txpwr_set (esp_ble_enhanced_power_type_t power_type , uint16_t handle , int power_level );
158- extern int ble_txpwr_get (esp_ble_enhanced_power_type_t power_type , uint16_t handle );
159- extern int ble_get_npl_element_info (esp_bt_controller_config_t * cfg , ble_npl_count_info_t * npl_info );
159+ extern int r_ble_txpwr_set (esp_ble_enhanced_power_type_t power_type , uint16_t handle , int power_level );
160+ extern int r_ble_txpwr_get (esp_ble_enhanced_power_type_t power_type , uint16_t handle );
161+ extern int r_ble_get_npl_element_info (esp_bt_controller_config_t * cfg , ble_npl_count_info_t * npl_info );
160162extern char * ble_controller_get_compile_version (void );
163+ extern int esp_ble_register_bb_funcs (void );
164+ extern void esp_ble_unregister_bb_funcs (void );
161165extern uint32_t _bt_bss_start ;
162166extern uint32_t _bt_bss_end ;
163167extern uint32_t _bt_controller_bss_start ;
@@ -723,7 +727,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
723727 goto free_mem ;
724728 }
725729
726- ble_get_npl_element_info (cfg , & npl_info );
730+ r_ble_get_npl_element_info (cfg , & npl_info );
727731 npl_freertos_set_controller_npl_info (& npl_info );
728732 if (npl_freertos_mempool_init () != 0 ) {
729733 ESP_LOGW (NIMBLE_PORT_LOG_TAG , "npl mempool init failed" );
@@ -780,13 +784,6 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
780784 coex_init ();
781785#endif // CONFIG_SW_COEXIST_ENABLE
782786
783- ret = ble_controller_init (cfg );
784- if (ret != ESP_OK ) {
785- ESP_LOGW (NIMBLE_PORT_LOG_TAG , "ble_controller_init failed %d" , ret );
786- goto modem_deint ;
787- }
788-
789- ESP_LOGI (NIMBLE_PORT_LOG_TAG , "ble controller commit:[%s]" , ble_controller_get_compile_version ());
790787#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
791788 interface_func_t bt_controller_log_interface ;
792789 bt_controller_log_interface = esp_bt_controller_log_interface ;
@@ -804,11 +801,23 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
804801#endif // CONFIG_BT_CONTROLLER_LOG_DUMP
805802 if (ret != ESP_OK ) {
806803 ESP_LOGW (NIMBLE_PORT_LOG_TAG , "ble_controller_log_init failed %d" , ret );
807- goto controller_init_err ;
804+ goto modem_deint ;
808805 }
809806#endif // CONFIG_BT_CONTROLLER_LOG_ENABLED
807+ ret = esp_ble_register_bb_funcs ();
808+ if (ret != ESP_OK ) {
809+ ESP_LOGW (NIMBLE_PORT_LOG_TAG , "esp_ble_register_bb_funcs failed %d" , ret );
810+ goto modem_deint ;
811+ }
812+
813+ ret = r_ble_controller_init (cfg );
814+ if (ret != ESP_OK ) {
815+ ESP_LOGW (NIMBLE_PORT_LOG_TAG , "r_ble_controller_init failed %d" , ret );
816+ goto modem_deint ;
817+ }
810818
811- esp_ble_change_rtc_freq (slow_clk_freq );
819+ ESP_LOGI (NIMBLE_PORT_LOG_TAG , "ble controller commit:[%s]" , ble_controller_get_compile_version ());
820+ r_esp_ble_change_rtc_freq (slow_clk_freq );
812821
813822 ble_controller_scan_duplicate_config ();
814823
@@ -825,7 +834,7 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
825834 }
826835 ESP_ERROR_CHECK (esp_read_mac ((uint8_t * )mac , ESP_MAC_BT ));
827836 swap_in_place (mac , 6 );
828- esp_ble_ll_set_public_addr (mac );
837+ r_esp_ble_ll_set_public_addr (mac );
829838
830839 ble_controller_status = ESP_BT_CONTROLLER_STATUS_INITED ;
831840
@@ -835,13 +844,13 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
835844
836845free_controller :
837846 controller_sleep_deinit ();
847+ os_msys_deinit ();
848+ r_ble_controller_deinit ();
849+ modem_deint :
850+ esp_ble_unregister_bb_funcs ();
838851#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
839- controller_init_err :
840852 r_ble_log_deinit_async ();
841853#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
842- os_msys_deinit ();
843- ble_controller_deinit ();
844- modem_deint :
845854 esp_phy_modem_deinit ();
846855 // modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
847856 modem_clock_module_disable (PERIPH_BT_MODULE );
@@ -872,10 +881,11 @@ esp_err_t esp_bt_controller_deinit(void)
872881 // modem_clock_deselect_lp_clock_source(PERIPH_BT_MODULE);
873882 modem_clock_module_disable (PERIPH_BT_MODULE );
874883
884+ r_ble_controller_deinit ();
885+ esp_ble_unregister_bb_funcs ();
875886#if CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
876887 r_ble_log_deinit_async ();
877888#endif // CONFIG_BT_LE_CONTROLLER_LOG_ENABLED
878- ble_controller_deinit ();
879889
880890#if CONFIG_BT_NIMBLE_ENABLED
881891 /* De-initialize default event queue */
@@ -920,7 +930,7 @@ esp_err_t esp_bt_controller_enable(esp_bt_mode_t mode)
920930 coex_enable ();
921931#endif // CONFIG_SW_COEXIST_ENABLE
922932
923- if (ble_controller_enable (mode ) != 0 ) {
933+ if (r_ble_controller_enable (mode ) != 0 ) {
924934 ret = ESP_FAIL ;
925935 goto error ;
926936 }
@@ -948,7 +958,7 @@ esp_err_t esp_bt_controller_disable(void)
948958 ESP_LOGW (NIMBLE_PORT_LOG_TAG , "invalid controller state" );
949959 return ESP_FAIL ;
950960 }
951- if (ble_controller_disable () != 0 ) {
961+ if (r_ble_controller_disable () != 0 ) {
952962 return ESP_FAIL ;
953963 }
954964#if CONFIG_SW_COEXIST_ENABLE
@@ -1082,7 +1092,7 @@ esp_err_t esp_ble_tx_power_set(esp_ble_power_type_t power_type, esp_power_level_
10821092 case ESP_BLE_PWR_TYPE_DEFAULT :
10831093 case ESP_BLE_PWR_TYPE_ADV :
10841094 case ESP_BLE_PWR_TYPE_SCAN :
1085- if (ble_txpwr_set (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 , power_level ) == 0 ) {
1095+ if (r_ble_txpwr_set (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 , power_level ) == 0 ) {
10861096 stat = ESP_OK ;
10871097 }
10881098 break ;
@@ -1095,7 +1105,7 @@ esp_err_t esp_ble_tx_power_set(esp_ble_power_type_t power_type, esp_power_level_
10951105 case ESP_BLE_PWR_TYPE_CONN_HDL6 :
10961106 case ESP_BLE_PWR_TYPE_CONN_HDL7 :
10971107 case ESP_BLE_PWR_TYPE_CONN_HDL8 :
1098- if (ble_txpwr_set (ESP_BLE_ENHANCED_PWR_TYPE_CONN , power_type , power_level ) == 0 ) {
1108+ if (r_ble_txpwr_set (ESP_BLE_ENHANCED_PWR_TYPE_CONN , power_type , power_level ) == 0 ) {
10991109 stat = ESP_OK ;
11001110 }
11011111 break ;
@@ -1115,13 +1125,13 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type
11151125 case ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT :
11161126 case ESP_BLE_ENHANCED_PWR_TYPE_SCAN :
11171127 case ESP_BLE_ENHANCED_PWR_TYPE_INIT :
1118- if (ble_txpwr_set (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 , power_level ) == 0 ) {
1128+ if (r_ble_txpwr_set (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 , power_level ) == 0 ) {
11191129 stat = ESP_OK ;
11201130 }
11211131 break ;
11221132 case ESP_BLE_ENHANCED_PWR_TYPE_ADV :
11231133 case ESP_BLE_ENHANCED_PWR_TYPE_CONN :
1124- if (ble_txpwr_set (power_type , handle , power_level ) == 0 ) {
1134+ if (r_ble_txpwr_set (power_type , handle , power_level ) == 0 ) {
11251135 stat = ESP_OK ;
11261136 }
11271137 break ;
@@ -1141,7 +1151,7 @@ esp_power_level_t esp_ble_tx_power_get(esp_ble_power_type_t power_type)
11411151 case ESP_BLE_PWR_TYPE_ADV :
11421152 case ESP_BLE_PWR_TYPE_SCAN :
11431153 case ESP_BLE_PWR_TYPE_DEFAULT :
1144- tx_level = ble_txpwr_get (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 );
1154+ tx_level = r_ble_txpwr_get (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 );
11451155 break ;
11461156 case ESP_BLE_PWR_TYPE_CONN_HDL0 :
11471157 case ESP_BLE_PWR_TYPE_CONN_HDL1 :
@@ -1152,7 +1162,7 @@ esp_power_level_t esp_ble_tx_power_get(esp_ble_power_type_t power_type)
11521162 case ESP_BLE_PWR_TYPE_CONN_HDL6 :
11531163 case ESP_BLE_PWR_TYPE_CONN_HDL7 :
11541164 case ESP_BLE_PWR_TYPE_CONN_HDL8 :
1155- tx_level = ble_txpwr_get (ESP_BLE_ENHANCED_PWR_TYPE_CONN , power_type );
1165+ tx_level = r_ble_txpwr_get (ESP_BLE_ENHANCED_PWR_TYPE_CONN , power_type );
11561166 break ;
11571167 default :
11581168 return ESP_PWR_LVL_INVALID ;
@@ -1174,11 +1184,11 @@ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t po
11741184 case ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT :
11751185 case ESP_BLE_ENHANCED_PWR_TYPE_SCAN :
11761186 case ESP_BLE_ENHANCED_PWR_TYPE_INIT :
1177- tx_level = ble_txpwr_get (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 );
1187+ tx_level = r_ble_txpwr_get (ESP_BLE_ENHANCED_PWR_TYPE_DEFAULT , 0 );
11781188 break ;
11791189 case ESP_BLE_ENHANCED_PWR_TYPE_ADV :
11801190 case ESP_BLE_ENHANCED_PWR_TYPE_CONN :
1181- tx_level = ble_txpwr_get (power_type , handle );
1191+ tx_level = r_ble_txpwr_get (power_type , handle );
11821192 break ;
11831193 default :
11841194 return ESP_PWR_LVL_INVALID ;
0 commit comments