Merge branch 'bugfix/bluedroid_debug_esp32c2_rls' into 'release/v5.0'

Bugfix/bludroid debug esp32c2

See merge request espressif/esp-idf!20244
This commit is contained in:
Jiang Jiang Jian
2022-09-21 20:37:17 +08:00
7 changed files with 14 additions and 31 deletions
+5 -10
View File
@@ -598,7 +598,7 @@ ble_hs_hci_rx_evt(uint8_t *hci_ev, void *arg)
if(esp_bluedroid_get_status() == ESP_BLUEDROID_STATUS_UNINITIALIZED) {
return 0;
}
uint8_t len = hci_ev[1] + 3;
uint16_t len = hci_ev[1] + 3;
uint8_t *data = (uint8_t *)malloc(len);
data[0] = 0x04;
memcpy(&data[1], hci_ev, len - 1);
@@ -608,22 +608,17 @@ ble_hs_hci_rx_evt(uint8_t *hci_ev, void *arg)
return 0;
}
static void *trans_om;
void hci_trans_free_mbuf(void)
{
os_mbuf_free_chain(trans_om);
}
int
ble_hs_rx_data(struct os_mbuf *om, void *arg)
{
uint8_t len = om->om_len + 1;
uint16_t len = om->om_len + 1;
uint8_t *data = (uint8_t *)malloc(len);
data[0] = 0x02;
memcpy(&data[1], om->om_data, len - 1);
os_mbuf_copydata(om, 0, len - 1, &data[1]);
host_recv_pkt_cb(data, len);
trans_om = om;
free(data);
hci_trans_free_mbuf();
os_mbuf_free_chain(om);
return 0;
}
@@ -1990,7 +1990,7 @@ void btm_ble_conn_complete(UINT8 *p, UINT16 evt_len, BOOLEAN enhanced)
}
#if (BLE_PRIVACY_SPT == TRUE )
peer_addr_type = bda_type;
match = btm_identity_addr_to_random_pseudo (bda, &bda_type, TRUE);
match = btm_identity_addr_to_random_pseudo (bda, &bda_type, FALSE);
/* possiblly receive connection complete with resolvable random on
slave role while the device has been paired */
@@ -4250,10 +4250,11 @@ void btm_ble_read_remote_features_complete(UINT8 *p)
btsnd_hcic_rmt_ver_req (p_acl_cb->hci_handle);
}
else{
uint16_t data_length = controller_get_interface()->get_ble_default_data_packet_length();
uint16_t data_txtime = controller_get_interface()->get_ble_default_data_packet_txtime();
if (p_acl_cb->transport == BT_TRANSPORT_LE) {
if (HCI_LE_DATA_LEN_EXT_SUPPORTED(p_acl_cb->peer_le_features)) {
uint16_t data_length = controller_get_interface()->get_ble_default_data_packet_length();
uint16_t data_txtime = controller_get_interface()->get_ble_default_data_packet_txtime();
if (HCI_LE_DATA_LEN_EXT_SUPPORTED(p_acl_cb->peer_le_features) &&
(p_acl_cb->data_length_params.tx_len != data_length)) {
p_acl_cb->data_len_updating = true;
btsnd_hcic_ble_set_data_length(p_acl_cb->hci_handle, data_length, data_txtime);
}