diff --git a/components/bt/controller/esp32h2/Kconfig.in b/components/bt/controller/esp32h2/Kconfig.in index f3ff6a4d23..17a1d9abf2 100644 --- a/components/bt/controller/esp32h2/Kconfig.in +++ b/components/bt/controller/esp32h2/Kconfig.in @@ -919,3 +919,65 @@ endmenu config BT_LE_DTM_ENABLED bool "Enable Direct Test Mode (DTM) feature" default n + +menu "Scheduling Priority Level Config" + choice BT_LE_ADV_SCHED_PRIO_LEVEL + prompt "The Adv scheduling priority level" + default BT_LE_ADV_SCHED_PRIO_LOW_LEVEL + help + The Adv scheduling priority level is used for arbitration when internal scheduling conflicts. + config BT_LE_ADV_SCHED_PRIO_LOW_LEVEL + bool "low priority level" + config BT_LE_ADV_SCHED_PRIO_MID_LEVEL + bool "medium priority level" + config BT_LE_ADV_SCHED_PRIO_HIGH_LEVEL + bool "high priority level" + endchoice + + config BT_LE_DFT_ADV_SCHED_PRIO_LEVEL + int + default 0 if BT_LE_ADV_SCHED_PRIO_LOW_LEVEL + default 1 if BT_LE_ADV_SCHED_PRIO_MID_LEVEL + default 2 if BT_LE_ADV_SCHED_PRIO_HIGH_LEVEL + default 0 + + choice BT_LE_PERIODIC_ADV_SCHED_PRIO_LEVEL + prompt "The Periodic Adv scheduling priority level" + default BT_LE_PERIODIC_ADV_SCHED_PRIO_MID_LEVEL + help + The Periodic Adv scheduling priority level is used for arbitration when internal scheduling conflicts. + config BT_LE_PERIODIC_ADV_SCHED_PRIO_LOW_LEVEL + bool "low priority level" + config BT_LE_PERIODIC_ADV_SCHED_PRIO_MID_LEVEL + bool "medium priority level" + config BT_LE_PERIODIC_ADV_SCHED_PRIO_HIGH_LEVEL + bool "high priority level" + endchoice + + config BT_LE_DFT_PERIODIC_ADV_SCHED_PRIO_LEVEL + int + default 0 if BT_LE_PERIODIC_ADV_SCHED_PRIO_LOW_LEVEL + default 1 if BT_LE_PERIODIC_ADV_SCHED_PRIO_MID_LEVEL + default 2 if BT_LE_PERIODIC_ADV_SCHED_PRIO_HIGH_LEVEL + default 1 + + choice BT_LE_SYNC_SCHED_PRIO_LEVEL + prompt "The Sync scheduling priority level" + default BT_LE_SYNC_SCHED_PRIO_MID_LEVEL + help + The SYNC scheduling priority level is used for arbitration when internal scheduling conflicts. + config BT_LE_SYNC_SCHED_PRIO_LOW_LEVEL + bool "low priority level" + config BT_LE_SYNC_SCHED_PRIO_MID_LEVEL + bool "medium priority level" + config BT_LE_SYNC_SCHED_PRIO_HIGH_LEVEL + bool "high priority level" + endchoice + + config BT_LE_DFT_SYNC_SCHED_PRIO_LEVEL + int + default 0 if BT_LE_SYNC_SCHED_PRIO_LOW_LEVEL + default 1 if BT_LE_SYNC_SCHED_PRIO_MID_LEVEL + default 2 if BT_LE_SYNC_SCHED_PRIO_HIGH_LEVEL + default 1 +endmenu diff --git a/components/bt/controller/esp32h2/esp_bt_cfg.h b/components/bt/controller/esp32h2/esp_bt_cfg.h index 4734737c5a..e79eb742e2 100644 --- a/components/bt/controller/esp32h2/esp_bt_cfg.h +++ b/components/bt/controller/esp32h2/esp_bt_cfg.h @@ -297,7 +297,7 @@ extern "C" { #define RUN_BQB_TEST (0) #define RUN_QA_TEST (0) #define NIMBLE_DISABLE_SCAN_BACKOFF (0) - +#define BT_LL_CTRL_PRIO_LVL_CFG ((CONFIG_BT_LE_DFT_SYNC_SCHED_PRIO_LEVEL << 4) | (CONFIG_BT_LE_DFT_PERIODIC_ADV_SCHED_PRIO_LEVEL << 2) | CONFIG_BT_LE_DFT_ADV_SCHED_PRIO_LEVEL) #ifdef __cplusplus } #endif diff --git a/components/bt/include/esp32h2/include/esp_bt.h b/components/bt/include/esp32h2/include/esp_bt.h index 601f5816a3..b6bb5bfb23 100644 --- a/components/bt/include/esp32h2/include/esp_bt.h +++ b/components/bt/include/esp32h2/include/esp_bt.h @@ -161,7 +161,7 @@ esp_err_t esp_ble_tx_power_set_enhanced(esp_ble_enhanced_power_type_t power_type */ esp_power_level_t esp_ble_tx_power_get_enhanced(esp_ble_enhanced_power_type_t power_type, uint16_t handle); -#define CONFIG_VERSION 0x20250606 +#define CONFIG_VERSION 0x20251022 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -236,6 +236,7 @@ typedef struct { int8_t ch39_txpwr; /*!< BLE transmit power (in dBm) used for BLE advertising on channel 39. */ uint8_t adv_rsv_cnt; /*!< BLE adv state machine reserve count number */ uint8_t conn_rsv_cnt; /*!< BLE conn state machine reserve count number */ + uint8_t priority_level_cfg; /*!< The option for priority level configuration */ uint32_t config_magic; /*!< Configuration magic value */ } esp_bt_controller_config_t; @@ -298,6 +299,7 @@ typedef struct { .ch39_txpwr = BLE_LL_TX_PWR_DBM_N, \ .adv_rsv_cnt = BLE_LL_ADV_SM_RESERVE_CNT_N, \ .conn_rsv_cnt = BLE_LL_CONN_SM_RESERVE_CNT_N, \ + .priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \ .config_magic = CONFIG_MAGIC, \ }