mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
Merge branch 'bugfix/fix_set_perfer_ext_conn_param_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed setting perfer conn params complete event report (v5.4) See merge request espressif/esp-idf!35748
This commit is contained in:
@ -1086,18 +1086,23 @@ end:
|
|||||||
void BTM_BleSetPreferExtenedConnParams (BD_ADDR bd_addr, tBTM_EXT_CONN_PARAMS *params)
|
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_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 (p_dev_rec) {
|
||||||
if (params) {
|
if (params) {
|
||||||
memcpy(&p_dev_rec->ext_conn_params, params, sizeof(tBTM_EXT_CONN_PARAMS));
|
memcpy(&p_dev_rec->ext_conn_params, params, sizeof(tBTM_EXT_CONN_PARAMS));
|
||||||
} else {
|
} else {
|
||||||
BTM_TRACE_ERROR("Invalid Extand connection parameters");
|
BTM_TRACE_ERROR("Invalid Extended connection parameters");
|
||||||
|
status = BTM_ILLEGAL_VALUE;
|
||||||
}
|
}
|
||||||
} else {
|
} 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)
|
void btm_ble_extended_init(void)
|
||||||
|
@ -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_scan_timeout_evt(UINT8 *p);
|
||||||
static void btu_ble_adv_set_terminate_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_scan_req_received_evt(UINT8 *p);
|
||||||
|
static void btu_ble_channel_select_alg_evt(UINT8 *p);
|
||||||
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
|
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
|
||||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
|
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
|
||||||
static void btu_ble_periodic_adv_sync_trans_recv(UINT8 *p);
|
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);
|
btu_ble_scan_req_received_evt(p);
|
||||||
break;
|
break;
|
||||||
case HCI_BLE_CHANNEL_SELECT_ALG:
|
case HCI_BLE_CHANNEL_SELECT_ALG:
|
||||||
|
btu_ble_channel_select_alg_evt(p);
|
||||||
break;
|
break;
|
||||||
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
|
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
|
||||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
|
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
|
||||||
@ -2351,6 +2353,21 @@ static void btu_ble_scan_req_received_evt(UINT8 *p)
|
|||||||
|
|
||||||
btm_ble_scan_req_received_evt(&req_received);
|
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)
|
#endif // #if (BLE_50_FEATURE_SUPPORT == TRUE)
|
||||||
|
|
||||||
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
|
#if (BLE_FEAT_PERIODIC_ADV_SYNC_TRANSFER == TRUE)
|
||||||
|
Reference in New Issue
Block a user