Merge branch 'bugfix/modify_coexist_options' into 'master'

modify Bluetooth coexistence options on ESP32C3

See merge request espressif/esp-idf!12244
This commit is contained in:
Jiang Jiang Jian 2021-02-05 19:45:40 +08:00
commit 17257b63ed
4 changed files with 39 additions and 34 deletions

View File

@ -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

@ -1 +1 @@
Subproject commit 272aaca1f859f87c9694cd441ae68cb3d7829664
Subproject commit 77eb1e91662fe4a5e9c783d25c5c9ae208c1af4b

View File

@ -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;
/**

View File

@ -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