diff --git a/components/bt/bluedroid/stack/btm/btm_acl.c b/components/bt/bluedroid/stack/btm/btm_acl.c index 8e786abb69..84fa0d6b71 100644 --- a/components/bt/bluedroid/stack/btm/btm_acl.c +++ b/components/bt/bluedroid/stack/btm/btm_acl.c @@ -335,7 +335,7 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn, btsnd_hcic_ble_read_remote_feat(p->hci_handle); } else if (HCI_LE_SLAVE_INIT_FEAT_EXC_SUPPORTED(controller_get_interface()->get_features_ble()->as_array) && link_role == HCI_ROLE_SLAVE) { - btsnd_hcic_ble_read_remote_feat(p->hci_handle); + btsnd_hcic_rmt_ver_req (p->hci_handle); } else { btm_establish_continue(p); } @@ -906,12 +906,17 @@ void btm_read_remote_version_complete (UINT8 *p) } #if BLE_INCLUDED == TRUE 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(); - btsnd_hcic_ble_set_data_length(p_acl_cb->hci_handle, data_length, data_txtime); + if(p_acl_cb->link_role == HCI_ROLE_MASTER) { + 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(); + btsnd_hcic_ble_set_data_length(p_acl_cb->hci_handle, data_length, data_txtime); + } + l2cble_notify_le_connection (p_acl_cb->remote_addr); + } else { + //slave role, read remote feature + btsnd_hcic_ble_read_remote_feat(p_acl_cb->hci_handle); } - l2cble_notify_le_connection (p_acl_cb->remote_addr); } #endif break; diff --git a/components/bt/bluedroid/stack/smp/smp_act.c b/components/bt/bluedroid/stack/smp/smp_act.c index 65370e6776..0b5d50be2e 100644 --- a/components/bt/bluedroid/stack/smp/smp_act.c +++ b/components/bt/bluedroid/stack/smp/smp_act.c @@ -58,7 +58,7 @@ static bool lmp_version_below(BD_ADDR bda, uint8_t version) SMP_TRACE_WARNING("%s cannot retrieve LMP version...", __func__); return false; } - SMP_TRACE_WARNING("%s LMP version %d < %d", __func__, acl->lmp_version, version); + SMP_TRACE_DEBUG("%s LMP version %d < %d", __func__, acl->lmp_version, version); return acl->lmp_version < version; }