mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-01 18:50:34 +03:00
feat(bt): Added support for slot availablity mask functionality
This commit is contained in:
@@ -185,6 +185,26 @@ config BT_CTRL_BR_EDR_DTM_EN
|
||||
help
|
||||
Enable BR/EDR controller direct test mode
|
||||
|
||||
config BT_CTRL_BR_EDR_SAM_EN
|
||||
bool "Enable BR/EDR controller Slot Availability Mask (READ DOCS FIRST) (EXPERIMENTAL)"
|
||||
depends on IDF_EXPERIMENTAL_FEATURES
|
||||
default n
|
||||
help
|
||||
Enable BR/EDR controller Slot Availability Mask(SAM).
|
||||
|
||||
Note: SAM functionality is partially implemented by software and only works on ACL air time scheduling.
|
||||
|
||||
config BT_CTRL_BR_EDR_MWS_EN
|
||||
bool "Enable BR/EDR controller Mobile Wireless Standards coexistence (READ DOCS FIRST) (EXPERIMENTAL)"
|
||||
depends on BT_CTRL_BR_EDR_SAM_EN
|
||||
default n
|
||||
help
|
||||
Enable BR/EDR controller Mobile Wireless Standards(MWS) coexistence.
|
||||
|
||||
Note: MWS coexistence functionality is only partially implemented. Supported HCI Commands:
|
||||
- HCI_Set_External_Frame_Configuration
|
||||
- HCI_Set_MWS_PATTERN_Configuration
|
||||
|
||||
config BT_CTRL_BR_EDR_TX_CCA_ENABLED
|
||||
bool "Enable BR/EDR TX CCA feature"
|
||||
default n
|
||||
|
||||
@@ -77,6 +77,18 @@ extern "C" {
|
||||
#define UC_BR_EDR_DTM_EN 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BT_CTRL_BR_EDR_SAM_EN) && CONFIG_BT_CTRL_BR_EDR_SAM_EN
|
||||
#define UC_BR_EDR_SAM_EN 1
|
||||
#else
|
||||
#define UC_BR_EDR_SAM_EN 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BT_CTRL_BR_EDR_MWS_EN) && CONFIG_BT_CTRL_BR_EDR_MWS_EN
|
||||
#define UC_BR_EDR_MWS_EN 1
|
||||
#else
|
||||
#define UC_BR_EDR_MWS_EN 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BT_CTRL_BR_EDR_TX_CCA_ENABLED)
|
||||
#define UC_BR_EDR_TX_CCA_EN (CONFIG_BT_CTRL_BR_EDR_TX_CCA_ENABLED)
|
||||
#else
|
||||
|
||||
@@ -123,6 +123,8 @@ extern int bredr_ctrl_feat_dtm_en(void);
|
||||
extern int bredr_ctrl_feat_test_en(void);
|
||||
extern int bredr_ctrl_feat_lk_store_en(void);
|
||||
extern int bredr_ctrl_feat_coex_en(void);
|
||||
extern int bredr_ctrl_feat_sam_en(void);
|
||||
extern int bredr_ctrl_feat_mws_en(void);
|
||||
|
||||
extern const char *co_orca_get_git_version_str(void);
|
||||
extern void r_orca_log_set_printf(bredr_log_printf_fn printf_fn);
|
||||
@@ -682,6 +684,22 @@ static int bredr_ctrl_setup_callback(void)
|
||||
}
|
||||
#endif /* UC_BR_EDR_DTM_EN */
|
||||
|
||||
#if UC_BR_EDR_SAM_EN
|
||||
ret = bredr_ctrl_feat_sam_en();
|
||||
if (ret != 0) {
|
||||
ESP_LOGE(BREDR_LOG_TAG, "bredr_ctrl_feat_sam_en failed, ret:%d", ret);
|
||||
break;
|
||||
}
|
||||
#endif /* UC_BR_EDR_SAM_EN */
|
||||
|
||||
#if UC_BR_EDR_MWS_EN
|
||||
ret = bredr_ctrl_feat_mws_en();
|
||||
if (ret != 0) {
|
||||
ESP_LOGE(BREDR_LOG_TAG, "bredr_ctrl_feat_mws_en failed, ret:%d", ret);
|
||||
break;
|
||||
}
|
||||
#endif /* UC_BR_EDR_MWS_EN */
|
||||
|
||||
#if CONFIG_SW_COEXIST_ENABLE
|
||||
ret = bredr_ctrl_feat_coex_en();
|
||||
if (ret != 0) {
|
||||
|
||||
Reference in New Issue
Block a user