feat(ble): support sid filter feature on ESP32H2

(cherry picked from commit e4e42f0166)

Co-authored-by: cjin <jinchen@espressif.com>
This commit is contained in:
Zhou Xiao
2026-01-21 16:14:26 +05:30
committed by Rahul Tank
co-authored by cjin
parent fac081442c
commit 6e59e1bf4f
3 changed files with 38 additions and 3 deletions
+22 -1
View File
@@ -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 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -27,6 +27,11 @@ void extAdv_stack_deinitEnv(void);
int extAdv_stack_enable(void); int extAdv_stack_enable(void);
void extAdv_stack_disable(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); int sync_stack_initEnv(void);
void sync_stack_deinitEnv(void); void sync_stack_deinitEnv(void);
int sync_stack_enable(void); int sync_stack_enable(void);
@@ -84,6 +89,10 @@ void winWiden_stack_enableSetConstPeerScaVsCmd(bool en);
void adv_stack_enableScanReqRxdVsEvent(bool en); void adv_stack_enableScanReqRxdVsEvent(bool en);
void conn_stack_enableChanMapUpdCompVsEvent(bool en); void conn_stack_enableChanMapUpdCompVsEvent(bool en);
void sleep_stack_enableWakeupVsEvent(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) #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED)
#if CONFIG_BT_LE_RXBUF_OPT_ENABLED #if CONFIG_BT_LE_RXBUF_OPT_ENABLED
extern void mmgmt_enableRxbufOptFeature(void); extern void mmgmt_enableRxbufOptFeature(void);
@@ -136,6 +145,11 @@ int ble_stack_initEnv(void)
return rc; return rc;
} }
rc = scan_stack_initEnv();
if (rc) {
return rc;
}
rc = sync_stack_initEnv(); rc = sync_stack_initEnv();
if (rc) { if (rc) {
return rc; return rc;
@@ -210,6 +224,7 @@ void ble_stack_deinitEnv(void)
#endif // CONFIG_BT_LE_DTM_ENABLED #endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_deinitEnv(); sync_stack_deinitEnv();
scan_stack_deinitEnv();
extAdv_stack_deinitEnv(); extAdv_stack_deinitEnv();
adv_stack_deinitEnv(); adv_stack_deinitEnv();
base_stack_deinitEnv(); base_stack_deinitEnv();
@@ -234,6 +249,11 @@ int ble_stack_enable(void)
return rc; return rc;
} }
rc = scan_stack_enable();
if (rc) {
return rc;
}
rc = sync_stack_enable(); rc = sync_stack_enable();
if (rc) { if (rc) {
return rc; return rc;
@@ -302,6 +322,7 @@ void ble_stack_disable(void)
dtm_stack_disable(); dtm_stack_disable();
#endif // CONFIG_BT_LE_DTM_ENABLED #endif // CONFIG_BT_LE_DTM_ENABLED
sync_stack_disable(); sync_stack_disable();
scan_stack_disable();
extAdv_stack_disable(); extAdv_stack_disable();
adv_stack_disable(); adv_stack_disable();
base_stack_disable(); base_stack_disable();
+13 -1
View File
@@ -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 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -50,6 +50,16 @@ extern "C" {
#else #else
#define DEFAULT_BT_LE_PAWR_SUPPORTED (0) #define DEFAULT_BT_LE_PAWR_SUPPORTED (0)
#endif // CONFIG_BT_NIMBLE_PERIODIC_ADV_WITH_RESPONSES #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 #else
#if CONFIG_BT_LE_LL_CFG_FEAT_LE_CODED_PHY #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_CTS_PIN (-1)
#define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1) #define DEFAULT_BT_LE_HCI_UART_RTS_PIN (-1)
#endif #endif
#define DEFAULT_BT_ADV_SEND_CONSTANT_DID (0)
#define DEFAULT_BT_SCAN_ALLOW_ENH_ADI_FILTER (0)
#endif #endif
#define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF #define DEFAULT_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
@@ -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); 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 #define CONFIG_MAGIC 0x5A5AA5A5
/** /**
@@ -239,6 +239,7 @@ typedef struct {
uint8_t priority_level_cfg; /*!< The option for priority level configuration */ 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 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 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 */ uint32_t config_magic; /*!< Configuration magic value */
} esp_bt_controller_config_t; } esp_bt_controller_config_t;
@@ -304,6 +305,7 @@ typedef struct {
.priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \ .priority_level_cfg = BT_LL_CTRL_PRIO_LVL_CFG, \
.slv_fst_rx_lat_en = DEFAULT_BT_LE_CTRL_SLV_FAST_RX_CONN_DATA_EN, \ .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, \ .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, \ .config_magic = CONFIG_MAGIC, \
} }