diff --git a/components/bt/controller/esp32c3/Kconfig.in b/components/bt/controller/esp32c3/Kconfig.in index 187d3886ab..cc8d516807 100644 --- a/components/bt/controller/esp32c3/Kconfig.in +++ b/components/bt/controller/esp32c3/Kconfig.in @@ -73,13 +73,6 @@ config BT_CTRL_HW_CCA_EFF If other devices are sending packets in the air and the signal is strong, the packet hw to be sent this time is cancelled. -config BT_CTRL_COEX_PARAMETERS_ENABLE - bool "Allow Bluetooth preemption in the use of RF to support coexistence with Wi-Fi" - default n - help - Use pre-determined parameter set to control the use of RF by Bluetooth, - so that Bluetooth can compete for RF with Wi-fi to support coexistence. - choice BT_CTRL_CE_LENGTH_TYPE prompt "Connection event length determination method" help @@ -167,12 +160,6 @@ config BT_CTRL_DFT_TX_POWER_LEVEL_EFF default 7 if BT_CTRL_DFT_TX_POWER_LEVEL_P9 default 0 -config BT_CTRL_COEX_USE_HOOKS - bool "Communicate Bluetooth working status with Wi-Fi to support coexistence" - default n - help - Send notifications of Bluetooth working status to support coexistence with Wi-Fi. - config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP bool "BLE adv report flow control supported" default y @@ -277,6 +264,31 @@ config BT_CTRL_MESH_DUPL_SCAN_CACHE_SIZE Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh. When the maximum amount of device in the filter is reached, the cache will be refreshed. +choice BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM + prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection" + default BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS + depends on ESP32_WIFI_SW_COEXIST_ENABLE + help + When using PHY-Coded in BLE connection, limitation on max tx/rx time can be applied to + better avoid dramatic performance deterioration of Wi-Fi. + + config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EN + bool "Force Enable" + help + Always enable the limitation on max tx/rx time for Coded-PHY connection + + config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS + bool "Force Disable" + help + Disable the limitation on max tx/rx time for Coded-PHY connection +endchoice + +config BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF + int + default 0 if (!ESP32_WIFI_SW_COEXIST_ENABLE) + default 1 if BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EN + default 0 if BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS + menu "MODEM SLEEP Options" visible if BT_ENABLED diff --git a/components/bt/controller/lib b/components/bt/controller/lib index 272aaca1f8..77eb1e9166 160000 --- a/components/bt/controller/lib +++ b/components/bt/controller/lib @@ -1 +1 @@ -Subproject commit 272aaca1f859f87c9694cd441ae68cb3d7829664 +Subproject commit 77eb1e91662fe4a5e9c783d25c5c9ae208c1af4b diff --git a/components/bt/include/esp32c3/include/esp_bt.h b/components/bt/include/esp32c3/include/esp_bt.h index 543f80785e..3276283407 100644 --- a/components/bt/include/esp32c3/include/esp_bt.h +++ b/components/bt/include/esp32c3/include/esp_bt.h @@ -26,7 +26,7 @@ extern "C" { #endif #define ESP_BT_CTRL_CONFIG_MAGIC_VAL 0x5A5AA5A5 -#define ESP_BT_CTRL_CONFIG_VERSION 0x02004260 +#define ESP_BT_CTRL_CONFIG_VERSION 0x02101290 #define ESP_BT_HCI_TL_MAGIC_VALUE 0xfadebead #define ESP_BT_HCI_TL_VERSION 0x00010000 @@ -85,23 +85,18 @@ enum { ESP_BT_ANT_IDX_1 = 1, /*!< anntena NO 1 */ }; +/** + * @brief Maximum Tx/Rx time limit on Coded-PHY connection + */ +enum { + ESP_BT_COEX_PHY_CODED_TX_RX_TIME_LIMIT_FORCE_DISABLE = 0, /*!< Disable the limit */ + ESP_BT_COEX_PHY_CODED_TX_RX_TIME_LIMIT_FORCE_ENABLE, /*!< Always Enable the limit */ +}; + #ifdef CONFIG_BT_ENABLED -#ifdef CONFIG_BT_CTRL_COEX_PARAMETERS_ENABLE -#define BT_CTRL_COEX_PARAMETERS_ENABLE true -#else -#define BT_CTRL_COEX_PARAMETERS_ENABLE false -#endif - -#ifdef CONFIG_BT_CTRL_COEX_USE_HOOKS -#define BT_CTRL_COEX_USE_HOOKS true -#else -#define BT_CTRL_COEX_USE_HOOKS false -#endif - #define BT_CTRL_BLE_MAX_ACT_LIMIT 10 //Maximum BLE activity limitation - #ifdef CONFIG_BT_CTRL_SCAN_DUPL_TYPE #define SCAN_DUPLICATE_TYPE_VALUE CONFIG_BT_CTRL_SCAN_DUPL_TYPE #else @@ -151,9 +146,7 @@ enum { .ble_st_acl_tx_buf_nb = CONFIG_BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB, \ .ble_hw_cca_check = CONFIG_BT_CTRL_HW_CCA_EFF, \ .ble_adv_dup_filt_max = CONFIG_BT_CTRL_ADV_DUP_FILT_MAX, \ - .coex_param_en = BT_CTRL_COEX_PARAMETERS_ENABLE, \ .ce_len_type = CONFIG_BT_CTRL_CE_LENGTH_TYPE_EFF, \ - .coex_use_hooks = BT_CTRL_COEX_USE_HOOKS, \ .hci_tl_type = CONFIG_BT_CTRL_HCI_TL_EFF, \ .hci_tl_funcs = NULL, \ .txant_dft = CONFIG_BT_CTRL_TX_ANTENNA_INDEX_EFF, \ @@ -164,6 +157,7 @@ enum { .scan_duplicate_type = SCAN_DUPLICATE_TYPE_VALUE, \ .normal_adv_size = NORMAL_SCAN_DUPLICATE_CACHE_SIZE, \ .mesh_adv_size = MESH_DUPLICATE_SCAN_CACHE_SIZE, \ + .coex_phy_coded_tx_rx_time_limit = CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF, \ }; #else @@ -213,9 +207,9 @@ typedef struct { uint8_t ble_st_acl_tx_buf_nb; /*!< controller static ACL TX BUFFER number */ uint8_t ble_hw_cca_check; /*!< controller hardware triggered CCA check */ uint16_t ble_adv_dup_filt_max; /*!< maxinum number of duplicate scan filter */ - bool coex_param_en; /*!< init coex parameters*/ + bool coex_param_en; /*!< deprecated */ uint8_t ce_len_type; /*!< connection event length computation method */ - bool coex_use_hooks; /*!< use hooks in bluetooth to assist WiFi behavouir determination */ + bool coex_use_hooks; /*!< deprecated */ uint8_t hci_tl_type; /*!< HCI transport layer, UART, VHCI, etc */ esp_bt_hci_tl_t *hci_tl_funcs; /*!< hci transport functions used, must be set when hci_tl_type is UART */ uint8_t txant_dft; /*!< default Tx antenna */ @@ -226,6 +220,7 @@ typedef struct { uint8_t scan_duplicate_type; /*!< scan duplicate type */ uint16_t normal_adv_size; /*!< Normal adv size for scan duplicate */ uint16_t mesh_adv_size; /*!< Mesh adv size for scan duplicate */ + uint8_t coex_phy_coded_tx_rx_time_limit; /*!< limit on max tx/rx time in case of connection using CODED-PHY with Wi-Fi coexistence */ } esp_bt_controller_config_t; /** diff --git a/examples/bluetooth/bluedroid/ble/blufi/sdkconfig.defaults.esp32c3 b/examples/bluetooth/bluedroid/ble/blufi/sdkconfig.defaults.esp32c3 index e2a83aca24..8ba3abb184 100644 --- a/examples/bluetooth/bluedroid/ble/blufi/sdkconfig.defaults.esp32c3 +++ b/examples/bluetooth/bluedroid/ble/blufi/sdkconfig.defaults.esp32c3 @@ -395,7 +395,6 @@ CONFIG_BT_CTRL_HCI_TL=1 CONFIG_BT_CTRL_ADV_DUP_FILT_MAX=30 # CONFIG_BT_CTRL_HW_CCA is not set CONFIG_BT_CTRL_HW_CCA_EFF=0 -CONFIG_BT_CTRL_COEX_PARAMETERS_ENABLE=y CONFIG_BT_CTRL_CE_LENGTH_TYPE_ORIG=y # CONFIG_BT_CTRL_CE_LENGTH_TYPE_CE is not set # CONFIG_BT_CTRL_CE_LENGTH_TYPE_SD is not set @@ -415,7 +414,6 @@ CONFIG_BT_CTRL_RX_ANTENNA_INDEX_EFF=0 # CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_P6 is not set CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_P9=y CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_EFF=7 -CONFIG_BT_CTRL_COEX_USE_HOOKS=y # # MODEM SLEEP Options