If you set `BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
may cause adv packets lost more.
+ menuconfig BTDM_COEX_BT_OPTIONS
+ bool "Coexistence Bluetooth Side Options"
+ depends on ESP32_WIFI_SW_COEXIST_ENABLE
+ default n
+ help
+ Options of Bluetooth Side of WiFi and bluetooth coexistence.
+
+ config BTDM_COEX_BLE_ADV_HIGH_PRIORITY
+ bool "Improve BLE ADV priority for WiFi & BLE coexistence"
+ depends on BTDM_COEX_BT_OPTIONS
+ default n
+ help
+ Improve BLE ADV coexistence priority to make it better performance.
+ For example, BLE mesh need to enable this option to improve BLE adv performance.
+
endmenu
choice BT_HOST
extern int coex_register_bt_cb_wrapper(coex_func_cb_t cb);
extern uint32_t coex_bb_reset_lock_wrapper(void);
extern void coex_bb_reset_unlock_wrapper(uint32_t restore);
+extern void coex_ble_adv_priority_high_set(bool high);
extern char _bss_start_btdm;
extern char _bss_end_btdm;
goto error;
}
+ #ifdef CONFIG_BTDM_COEX_BLE_ADV_HIGH_PRIORITY
+ coex_ble_adv_priority_high_set(true);
+ #else
+ coex_ble_adv_priority_high_set(false);
+ #endif
+
btdm_controller_status = ESP_BT_CONTROLLER_STATUS_INITED;
return ESP_OK;
-Subproject commit 484307604fad19b82afca4ff2e57fda63158c2b4
+Subproject commit aaadbf2c26002ae85c175cb0e469a3b0bf57bf02
#endif
}
+static void coex_condition_set_wrapper(uint32_t type, bool dissatisfy)
+{
+#if CONFIG_SW_COEXIST_ENABLE
+ coex_condition_set(type, dissatisfy);
+#endif
+}
+
static int coex_wifi_request_wrapper(uint32_t event, uint32_t latency, uint32_t duration)
{
#if CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
._modem_sleep_register = esp_modem_sleep_register,
._modem_sleep_deregister = esp_modem_sleep_deregister,
._coex_status_get = coex_status_get_wrapper,
+ ._coex_condition_set = coex_condition_set_wrapper,
._coex_wifi_request = coex_wifi_request_wrapper,
._coex_wifi_release = coex_wifi_release_wrapper,
._magic = ESP_WIFI_OS_ADAPTER_MAGIC,
*/
uint32_t coex_status_get(void);
+/**
+ * @brief Set software coexist condition.
+ * @return : software coexist condition
+ */
+void coex_condition_set(uint32_t type, bool dissatisfy);
+
/**
* @brief WiFi requests coexistence.
*
extern "C" {
#endif
-#define ESP_WIFI_OS_ADAPTER_VERSION 0x00000003
+#define ESP_WIFI_OS_ADAPTER_VERSION 0x00000004
#define ESP_WIFI_OS_ADAPTER_MAGIC 0xDEADBEAF
#define OSI_FUNCS_TIME_BLOCKING 0xffffffff
int32_t (* _modem_sleep_register)(uint32_t module);
int32_t (* _modem_sleep_deregister)(uint32_t module);
uint32_t (* _coex_status_get)(void);
+ void (* _coex_condition_set)(uint32_t type, bool dissatisfy);
int32_t (* _coex_wifi_request)(uint32_t event, uint32_t latency, uint32_t duration);
int32_t (* _coex_wifi_release)(uint32_t event);
int32_t _magic;
-Subproject commit 555fb8b49d1f86da767353ec800e65c6148eae78
+Subproject commit 1266a879ba57e17c3d55a247b2a95bb9c4217505