Merge branch 'bugfix/fix_ble_read_remote_feature_timeout_v5.3' into 'release/v5.3'

Fixed read remote feature timeout when using coded phy(2f683593) (5.3)

See merge request espressif/esp-idf!48061
This commit is contained in:
Island
2026-05-12 18:01:44 +08:00
14 changed files with 125 additions and 39 deletions
@@ -561,6 +561,31 @@ config BT_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS
This improves security by ensuring that only connection requests with valid Access Addresses are accepted.
If disabled, only basic checks are applied, improving compatibility.
config BT_CTRL_BLE_MIN_CONN_INTERVAL_ENABLE
bool "Allow BLE connection interval below the spec minimum"
default y
select BT_BLE_HOST_ALLOW_SUB_SPEC_MIN_CONN_INT if BT_BLUEDROID_ENABLED
help
Enabling this option allows the BLE controller to use a connection interval
smaller than the Bluetooth Core specification minimum of 7.5 ms. On
ESP32-C3/S3, when this option is enabled, the connection interval can go as
low as 3 * 1.25 ms = 3.75 ms.
Note: Because the connection interval is very short, the time available within
a single connection event is also very limited. It is best not to send or
receive long payloads (e.g. large ATT MTU, Data Length Extension with large
Tx/Rx octets) when this lower interval is used.
This option is enabled by default. Disable it to stay compliant with the BLE
specification (minimum connection interval 7.5 ms).
Host stack: When Bluedroid is the BLE host, enabling this option also selects
BT_BLE_HOST_ALLOW_SUB_SPEC_MIN_CONN_INT so the host accepts connection
intervals below the spec minimum. NimBLE host does not provide equivalent
support yet; it is planned for a future release. Until then, use Bluedroid
if you need coordinated host and controller behavior for sub-minimum
intervals.
menu "Controller debug log Options (Experimental)"
config BT_CTRL_LE_LOG_EN
depends on BT_CTRL_RUN_IN_FLASH_ONLY
+4
View File
@@ -308,6 +308,7 @@ extern void ets_backup_dma_copy(uint32_t reg, uint32_t mem_addr, uint32_t num, b
extern void btdm_cca_feature_enable(void);
extern void btdm_aa_check_enhance_enable(void);
extern void ble_min_conn_interval_enable(uint16_t min_interval);
/* BLE Log module */
#if CONFIG_BT_CTRL_LE_LOG_EN
@@ -1347,6 +1348,9 @@ static void btdm_funcs_table_ready_wrapper(void)
#if BLE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS_ENABLED
btdm_aa_check_enhance_enable();
#endif
#if CONFIG_BT_CTRL_BLE_MIN_CONN_INTERVAL_ENABLE
ble_min_conn_interval_enable(3); // 3 * 1.25 = 3.75ms
#endif
#if CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY
// do nothing
#else