diff --git a/components/bt/controller/esp32c5/ble.c b/components/bt/controller/esp32c5/ble.c index 0b6fc1e7d0..b9fd93c43c 100644 --- a/components/bt/controller/esp32c5/ble.c +++ b/components/bt/controller/esp32c5/ble.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -27,6 +27,11 @@ void extAdv_stack_deinitEnv(void); int extAdv_stack_enable(void); void extAdv_stack_disable(void); +int scan_stack_initEnv(void); +void scan_stack_deinitEnv(void); +int scan_stack_enable(void); +void scan_stack_disable(void); + int sync_stack_initEnv(void); void sync_stack_deinitEnv(void); int sync_stack_enable(void); @@ -84,6 +89,12 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en); void adv_stack_enableScanReqRxdVsEvent(bool en); void conn_stack_enableChanMapUpdCompVsEvent(bool en); void sleep_stack_enableWakeupVsEvent(bool en); +#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +void scan_stack_enableSetScanADIOnlyFilterVsCmd(bool en); +#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +#if DEFAULT_BT_ADV_SEND_CONSTANT_DID +void extAdv_stack_setExtAdvConstantDidVsCmd(bool en); +#endif // DEFAULT_BT_ADV_SEND_CONSTANT_DID #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) #if CONFIG_BT_LE_RXBUF_OPT_ENABLED extern void mmgmt_enableRxbufOptFeature(void); @@ -136,6 +147,11 @@ int ble_stack_initEnv(void) return rc; } + rc = scan_stack_initEnv(); + if (rc) { + return rc; + } + rc = sync_stack_initEnv(); if (rc) { return rc; @@ -210,6 +226,7 @@ void ble_stack_deinitEnv(void) #endif // CONFIG_BT_LE_DTM_ENABLED sync_stack_deinitEnv(); + scan_stack_deinitEnv(); extAdv_stack_deinitEnv(); adv_stack_deinitEnv(); base_stack_deinitEnv(); @@ -234,6 +251,11 @@ int ble_stack_enable(void) return rc; } + rc = scan_stack_enable(); + if (rc) { + return rc; + } + rc = sync_stack_enable(); if (rc) { return rc; @@ -302,6 +324,7 @@ void ble_stack_disable(void) dtm_stack_disable(); #endif // CONFIG_BT_LE_DTM_ENABLED sync_stack_disable(); + scan_stack_disable(); extAdv_stack_disable(); adv_stack_disable(); base_stack_disable(); diff --git a/components/bt/controller/esp32c5/esp_bt_cfg.h b/components/bt/controller/esp32c5/esp_bt_cfg.h index 20f2ec7edb..401c36bc90 100644 --- a/components/bt/controller/esp32c5/esp_bt_cfg.h +++ b/components/bt/controller/esp32c5/esp_bt_cfg.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -50,6 +50,16 @@ extern "C" { #else #define DEFAULT_BT_LE_PAWR_SUPPORTED (0) #endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES + #if CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (1) + #else + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0) + #endif // CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID + #if CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (1) + #else + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0) + #endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER #else #if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY @@ -155,6 +165,8 @@ extern "C" { #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1) #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) #endif + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0) + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0) #endif #define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF diff --git a/components/bt/controller/esp32c6/ble.c b/components/bt/controller/esp32c6/ble.c index 792211e83f..7b5e76abe8 100644 --- a/components/bt/controller/esp32c6/ble.c +++ b/components/bt/controller/esp32c6/ble.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -27,6 +27,16 @@ void extAdv_stack_deinitEnv(void); int extAdv_stack_enable(void); void extAdv_stack_disable(void); +int scan_stack_initEnv(void); +void scan_stack_deinitEnv(void); +int scan_stack_enable(void); +void scan_stack_disable(void); + +int scan_stack_initEnv(void); +void scan_stack_deinitEnv(void); +int scan_stack_enable(void); +void scan_stack_disable(void); + int sync_stack_initEnv(void); void sync_stack_deinitEnv(void); int sync_stack_enable(void); @@ -84,6 +94,12 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en); void adv_stack_enableScanReqRxdVsEvent(bool en); void conn_stack_enableChanMapUpdCompVsEvent(bool en); void sleep_stack_enableWakeupVsEvent(bool en); +#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +void scan_stack_enableSetScanADIOnlyFilterVsCmd(bool en); +#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +#if DEFAULT_BT_ADV_SEND_CONSTANT_DID +void extAdv_stack_setExtAdvConstantDidVsCmd(bool en); +#endif // DEFAULT_BT_ADV_SEND_CONSTANT_DID #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) #if CONFIG_BT_LE_RXBUF_OPT_ENABLED extern void mmgmt_enableRxbufOptFeature(void); @@ -104,6 +120,12 @@ void ble_stack_enableVsCmds(bool en) log_stack_enableLogsRelatedVsCmd(en); hci_stack_enableSetVsEvtMaskVsCmd(en); winWiden_stack_enableSetConstPeerScaVsCmd(en); +#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER + scan_stack_enableSetScanADIOnlyFilterVsCmd(en); +#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +#if DEFAULT_BT_ADV_SEND_CONSTANT_DID + extAdv_stack_setExtAdvConstantDidVsCmd(en); +#endif // DEFAULT_BT_ADV_SEND_CONSTANT_DID } void ble_stack_enableVsEvents(bool en) @@ -136,6 +158,11 @@ int ble_stack_initEnv(void) return rc; } + rc = scan_stack_initEnv(); + if (rc) { + return rc; + } + rc = sync_stack_initEnv(); if (rc) { return rc; @@ -210,6 +237,7 @@ void ble_stack_deinitEnv(void) #endif // CONFIG_BT_LE_DTM_ENABLED sync_stack_deinitEnv(); + scan_stack_deinitEnv(); extAdv_stack_deinitEnv(); adv_stack_deinitEnv(); base_stack_deinitEnv(); @@ -234,6 +262,11 @@ int ble_stack_enable(void) return rc; } + rc = scan_stack_enable(); + if (rc) { + return rc; + } + rc = sync_stack_enable(); if (rc) { return rc; @@ -302,6 +335,7 @@ void ble_stack_disable(void) dtm_stack_disable(); #endif // CONFIG_BT_LE_DTM_ENABLED sync_stack_disable(); + scan_stack_disable(); extAdv_stack_disable(); adv_stack_disable(); base_stack_disable(); diff --git a/components/bt/controller/esp32c6/esp_bt_cfg.h b/components/bt/controller/esp32c6/esp_bt_cfg.h index e5d378ad9b..27371322ef 100644 --- a/components/bt/controller/esp32c6/esp_bt_cfg.h +++ b/components/bt/controller/esp32c6/esp_bt_cfg.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -51,6 +51,16 @@ extern "C" { #else #define DEFAULT_BT_LE_PAWR_SUPPORTED (0) #endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES + #if CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (1) + #else + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0) + #endif // CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID + #if CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (1) + #else + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0) + #endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER #else #if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY @@ -158,6 +168,8 @@ extern "C" { #endif #define DEFAULT_BT_LE_SUBRATE_ENABLED 0 + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0) + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0) #endif #define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF diff --git a/components/bt/controller/esp32h2/ble.c b/components/bt/controller/esp32h2/ble.c index 0b6fc1e7d0..411c0a69f9 100644 --- a/components/bt/controller/esp32h2/ble.c +++ b/components/bt/controller/esp32h2/ble.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -27,6 +27,11 @@ void extAdv_stack_deinitEnv(void); int extAdv_stack_enable(void); void extAdv_stack_disable(void); +int scan_stack_initEnv(void); +void scan_stack_deinitEnv(void); +int scan_stack_enable(void); +void scan_stack_disable(void); + int sync_stack_initEnv(void); void sync_stack_deinitEnv(void); int sync_stack_enable(void); @@ -84,6 +89,10 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en); void adv_stack_enableScanReqRxdVsEvent(bool en); void conn_stack_enableChanMapUpdCompVsEvent(bool en); void sleep_stack_enableWakeupVsEvent(bool en); +#if DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +void scan_stack_enableSetScanADIOnlyFilterVsCmd(bool en); +#endif // DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER +void extAdv_stack_setExtAdvConstantDidVsCmd(bool en); #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) #if CONFIG_BT_LE_RXBUF_OPT_ENABLED extern void mmgmt_enableRxbufOptFeature(void); @@ -136,6 +145,11 @@ int ble_stack_initEnv(void) return rc; } + rc = scan_stack_initEnv(); + if (rc) { + return rc; + } + rc = sync_stack_initEnv(); if (rc) { return rc; @@ -210,6 +224,7 @@ void ble_stack_deinitEnv(void) #endif // CONFIG_BT_LE_DTM_ENABLED sync_stack_deinitEnv(); + scan_stack_deinitEnv(); extAdv_stack_deinitEnv(); adv_stack_deinitEnv(); base_stack_deinitEnv(); @@ -234,6 +249,11 @@ int ble_stack_enable(void) return rc; } + rc = scan_stack_enable(); + if (rc) { + return rc; + } + rc = sync_stack_enable(); if (rc) { return rc; @@ -302,6 +322,7 @@ void ble_stack_disable(void) dtm_stack_disable(); #endif // CONFIG_BT_LE_DTM_ENABLED sync_stack_disable(); + scan_stack_disable(); extAdv_stack_disable(); adv_stack_disable(); base_stack_disable(); diff --git a/components/bt/controller/esp32h2/esp_bt_cfg.h b/components/bt/controller/esp32h2/esp_bt_cfg.h index 20f2ec7edb..401c36bc90 100644 --- a/components/bt/controller/esp32h2/esp_bt_cfg.h +++ b/components/bt/controller/esp32h2/esp_bt_cfg.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -50,6 +50,16 @@ extern "C" { #else #define DEFAULT_BT_LE_PAWR_SUPPORTED (0) #endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES + #if CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (1) + #else + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0) + #endif // CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID + #if CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (1) + #else + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0) + #endif // CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER #else #if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY @@ -155,6 +165,8 @@ extern "C" { #define DEFAULT_BT_LE_HCI_UART_CTS_PIN (-1) #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) #endif + #define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0) + #define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0) #endif #define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF diff --git a/components/bt/controller/lib_esp32c5/esp32c5-bt-lib b/components/bt/controller/lib_esp32c5/esp32c5-bt-lib index 95899f11a3..bbff15b4d8 160000 --- a/components/bt/controller/lib_esp32c5/esp32c5-bt-lib +++ b/components/bt/controller/lib_esp32c5/esp32c5-bt-lib @@ -1 +1 @@ -Subproject commit 95899f11a3f21aae115121ea778cfb8cb1047885 +Subproject commit bbff15b4d8cecad7c9e44b84bc32efc80cb3c6b2 diff --git a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib index d40be82077..d8b5341796 160000 --- a/components/bt/controller/lib_esp32c6/esp32c6-bt-lib +++ b/components/bt/controller/lib_esp32c6/esp32c6-bt-lib @@ -1 +1 @@ -Subproject commit d40be82077fab8d80aed1eecc39f30673dbcc90d +Subproject commit d8b5341796e19d39aaa011dcdc3b71ca6f9450f0 diff --git a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib index 1034b3c595..27ca7c0a07 160000 --- a/components/bt/controller/lib_esp32h2/esp32h2-bt-lib +++ b/components/bt/controller/lib_esp32h2/esp32h2-bt-lib @@ -1 +1 @@ -Subproject commit 1034b3c595cc3a570d2bfb6e0b08b45f3b1f5fae +Subproject commit 27ca7c0a074804c382409d01f86f5f46b4382bca diff --git a/components/bt/host/nimble/Kconfig.in b/components/bt/host/nimble/Kconfig.in index dc82f62561..f8c8249ee6 100644 --- a/components/bt/host/nimble/Kconfig.in +++ b/components/bt/host/nimble/Kconfig.in @@ -1619,6 +1619,24 @@ menu "Vendor / Optimization" depends on BT_NIMBLE_ENABLED help This enable BLE high duty advertising interval feature + + config BT_NIMBLE_ADV_SEND_CONSTANT_DID + bool "Enable BLE Ext Adv to Send with Specific DID" + depends on SOC_ESP_NIMBLE_CONTROLLER && BT_NIMBLE_50_FEATURE_SUPPORT && !(IDF_TARGET_ESP32C2) + select BT_NIMBLE_VS_SUPPORT + help + This enable vendor-specific APIs to send specific DID for different advertising data in extended + advertising. + + config BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER + bool "Enable BLE Ext Scan to Receive Packet with Specific ADI" + depends on SOC_ESP_NIMBLE_CONTROLLER && BT_NIMBLE_50_FEATURE_SUPPORT && !(IDF_TARGET_ESP32C2) + select BT_NIMBLE_VS_SUPPORT + help + This enables vendor-specific APIs to only receive specific groups of ADIs, and implements DIDs + duplicate filtering for extended scanning. Enabling this can reduce the unnecessary reception of + secondary channel PDUs carrying non-targeted ADIs. + endmenu #Vendor menu "Helper Utils" diff --git a/components/bt/host/nimble/port/include/esp_nimble_cfg.h b/components/bt/host/nimble/port/include/esp_nimble_cfg.h index 8155a2a6d0..cf36dec256 100644 --- a/components/bt/host/nimble/port/include/esp_nimble_cfg.h +++ b/components/bt/host/nimble/port/include/esp_nimble_cfg.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -2356,4 +2356,20 @@ #endif #endif +#ifndef MYNEWT_VAL_BLE_ADV_SEND_CONSTANT_DID +#ifdef CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID +#define MYNEWT_VAL_BLE_ADV_SEND_CONSTANT_DID (CONFIG_BT_NIMBLE_ADV_SEND_CONSTANT_DID) +#else +#define MYNEWT_VAL_BLE_ADV_SEND_CONSTANT_DID (0) +#endif +#endif + +#ifndef MYNEWT_VAL_BLE_SCAN_ALLOW_ENH_ADI_FILTER +#ifdef CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER +#define MYNEWT_VAL_BLE_SCAN_ALLOW_ENH_ADI_FILTER (CONFIG_BT_NIMBLE_SCAN_ALLOW_ENH_ADI_FILTER) +#else +#define MYNEWT_VAL_BLE_SCAN_ALLOW_ENH_ADI_FILTER (0) +#endif +#endif + #endif diff --git a/components/bt/include/esp32c5/include/esp_bt.h b/components/bt/include/esp32c5/include/esp_bt.h index 478c4df11a..02eaab43a3 100644 --- a/components/bt/include/esp32c5/include/esp_bt.h +++ b/components/bt/include/esp32c5/include/esp_bt.h @@ -159,7 +159,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 0x20251125 +#define CONFIG_VERSION 0x20251211 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -237,6 +237,7 @@ typedef struct { uint8_t priority_level_cfg; /*!< The option for priority level configuration */ uint8_t slv_fst_rx_lat_en; /*!< The option for enabling slave fast PDU reception during latency. */ uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update when phy update or connect interval update. */ + uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */ uint32_t config_magic; /*!< Magic number for configuration validation */ } esp_bt_controller_config_t; @@ -301,6 +302,7 @@ typedef struct { .priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \ .slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \ .dl_itvl_phy_sync_en = DEFAULT_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN, \ + .scan_allow_adi_filter = DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER, \ .config_magic = CONFIG_MAGIC, \ } diff --git a/components/bt/include/esp32c6/include/esp_bt.h b/components/bt/include/esp32c6/include/esp_bt.h index 5771335a99..666c0e3b92 100644 --- a/components/bt/include/esp32c6/include/esp_bt.h +++ b/components/bt/include/esp32c6/include/esp_bt.h @@ -156,7 +156,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 0x20251125 +#define CONFIG_VERSION 0x20251211 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -237,6 +237,7 @@ typedef struct { uint8_t priority_level_cfg; /*!< The option for priority level configuration */ uint8_t slv_fst_rx_lat_en; /*!< The option for enabling slave fast PDU reception during latency. */ uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update when phy update or connect interval update. */ + uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */ uint32_t config_magic; /*!< Magic number for configuration validation */ } esp_bt_controller_config_t; @@ -304,6 +305,7 @@ typedef struct { .priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \ .slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \ .dl_itvl_phy_sync_en = DEFAULT_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN, \ + .scan_allow_adi_filter = DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER, \ .config_magic = CONFIG_MAGIC, \ } #elif CONFIG_IDF_TARGET_ESP32C61 diff --git a/components/bt/include/esp32h2/include/esp_bt.h b/components/bt/include/esp32h2/include/esp_bt.h index f3d06ac7c5..374ca4e7ad 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 0x20251125 +#define CONFIG_VERSION 0x20251211 #define CONFIG_MAGIC 0x5A5AA5A5 /** @@ -239,6 +239,7 @@ typedef struct { uint8_t priority_level_cfg; /*!< The option for priority level configuration */ uint8_t slv_fst_rx_lat_en; /*!< The option for enabling slave fast PDU reception during latency. */ uint8_t dl_itvl_phy_sync_en; /*!< The option for automatically initiate the data length update when phy update or connect interval update. */ + uint8_t scan_allow_adi_filter; /*!< The option for ext scan to allow PDU with specific adi. */ uint32_t config_magic; /*!< Configuration magic value */ } esp_bt_controller_config_t; @@ -304,6 +305,7 @@ typedef struct { .priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \ .slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \ .dl_itvl_phy_sync_en = DEFAULT_BT_LE_CTRL_DL_ITVL_PHY_SYNC_EN, \ + .scan_allow_adi_filter = DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER, \ .config_magic = CONFIG_MAGIC, \ }