Merge branch 'bugfix/fix_set_perfer_ext_conn_param_v5.2' into 'release/v5.2'

fix(bt/bluedroid): Fixed setting perfer conn params complete event report (v5.2)

See merge request espressif/esp-idf!35746
This commit is contained in:
Island 2024-12-19 19:21:12 +08:00
commit 30f9f9f0fd
2 changed files with 25 additions and 3 deletions

View File

@ -1086,18 +1086,23 @@ end:
void BTM_BleSetPreferExtenedConnParams (BD_ADDR bd_addr, tBTM_EXT_CONN_PARAMS *params)
{
tBTM_SEC_DEV_REC *p_dev_rec = btm_find_or_alloc_dev (bd_addr);
tBTM_STATUS status = BTM_SUCCESS;
tBTM_BLE_5_GAP_CB_PARAMS cb_params = {0};
if (p_dev_rec) {
if (params) {
memcpy(&p_dev_rec->ext_conn_params, params, sizeof(tBTM_EXT_CONN_PARAMS));
} else {
BTM_TRACE_ERROR("Invalid Extand connection parameters");
BTM_TRACE_ERROR("Invalid Extended connection parameters");
status = BTM_ILLEGAL_VALUE;
}
} else {
BTM_TRACE_ERROR("Unknown Device, setting rejected");
BTM_TRACE_ERROR("Unknown Device, setting rejected");
status = BTM_UNKNOWN_ADDR;
}
return;
cb_params.status = status;
BTM_ExtBleCallbackTrigger(BTM_BLE_5_GAP_PREFER_EXT_CONN_PARAMS_SET_COMPLETE_EVT, &cb_params);
}
void btm_ble_extended_init(void)

View File

@ -143,6 +143,7 @@ static void btu_ble_periodic_adv_sync_lost_evt(UINT8 *p);
static void btu_ble_scan_timeout_evt(UINT8 *p);
static void btu_ble_adv_set_terminate_evt(UINT8 *p);
static void btu_ble_scan_req_received_evt(UINT8 *p);
static void btu_ble_channel_select_alg_evt(UINT8 *p);
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
static void btu_ble_periodic_adv_sync_trans_recv(UINT8 *p);
@ -411,6 +412,7 @@ void btu_hcif_process_event (UNUSED_ATTR UINT8 controller_id, BT_HDR *p_msg)
btu_ble_scan_req_received_evt(p);
break;
case HCI_BLE_CHANNEL_SELECT_ALG:
btu_ble_channel_select_alg_evt(p);
break;
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
@ -2341,6 +2343,21 @@ static void btu_ble_scan_req_received_evt(UINT8 *p)
btm_ble_scan_req_received_evt(&req_received);
}
static void btu_ble_channel_select_alg_evt(UINT8 *p)
{
tBTM_BLE_CHANNEL_SEL_ALG chan_sel_alg = {0};
if (!p) {
HCI_TRACE_ERROR("%s, Invalid params.", __func__);
return;
}
STREAM_TO_UINT16(chan_sel_alg.conn_handle, p);
STREAM_TO_UINT8(chan_sel_alg.channel_sel_alg, p);
btm_ble_channel_select_algorithm_evt(&chan_sel_alg);
}
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)