From 659d7ad3cc9bf47fa52a434888ced5db3b65c765 Mon Sep 17 00:00:00 2001 From: Zhou Xiao Date: Thu, 17 Apr 2025 10:54:31 +0800 Subject: [PATCH] feat(ble): support configurable rxbuf opt feat on ESP32-H2 (cherry picked from commit 4937d3c8836b7958766d6169c542f4dab9b67a1d) Co-authored-by: cjin --- components/bt/controller/esp32h2/Kconfig.in | 4 ++++ components/bt/controller/esp32h2/ble.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/components/bt/controller/esp32h2/Kconfig.in b/components/bt/controller/esp32h2/Kconfig.in index b07e4783a8..524785e45f 100644 --- a/components/bt/controller/esp32h2/Kconfig.in +++ b/components/bt/controller/esp32h2/Kconfig.in @@ -822,3 +822,7 @@ config BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX When this option is enabled, auxiliary packets will be present in the events of 'Non-Connectable and Non-Scannable' regardless of whether the advertising length is 0. If this option is not enabled, auxiliary packets will only be present when the advertising length is not 0. + +config BT_LE_RXBUF_OPT_ENABLED + bool "Enable rxbuf optimization feature" + default y diff --git a/components/bt/controller/esp32h2/ble.c b/components/bt/controller/esp32h2/ble.c index caa8d85543..8aef45a9a8 100644 --- a/components/bt/controller/esp32h2/ble.c +++ b/components/bt/controller/esp32h2/ble.c @@ -44,6 +44,9 @@ void adv_stack_enableScanReqRxdVsEvent(bool en); void conn_stack_enableChanMapUpdCompVsEvent(bool en); void sleep_stack_enableWakeupVsEvent(bool en); #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) +#if CONFIG_BT_LE_RXBUF_OPT_ENABLED +extern void mmgmt_enableRxbufOptFeature(void); +#endif // CONFIG_BT_LE_RXBUF_OPT_ENABLED /* Local functions definition *************************************************************************** @@ -137,6 +140,10 @@ int ble_stack_enable(void) ble_stack_enableVsEvents(true); #endif // (CONFIG_BT_NIMBLE_ENABLED || CONFIG_BT_BLUEDROID_ENABLED) +#if CONFIG_BT_LE_RXBUF_OPT_ENABLED + mmgmt_enableRxbufOptFeature(); +#endif // CONFIG_BT_LE_RXBUF_OPT_ENABLED + return 0; }