Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0233ac8 authored by Hansong Zhang's avatar Hansong Zhang Committed by Automerger Merge Worker
Browse files

Set ACL disconnect reason in ACL, not L2cap am: ae094b36 am: f6cf9e78

Original change: https://android-review.googlesource.com/c/platform/system/bt/+/1553579

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ibca9b34118b76fc90689819c2cd777bd923619a3
parents fec73e00 f6cf9e78
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -2622,10 +2622,6 @@ bool acl_peer_supports_ble_coded_phy(uint16_t hci_handle) {
  return HCI_LE_CODED_PHY_SUPPORTED(p_acl->peer_le_features);
}

tHCI_STATUS acl_get_disconnect_reason() {
  return btm_cb.acl_cb_.get_disconnect_reason();
}

void acl_set_disconnect_reason(tHCI_STATUS acl_disc_reason) {
  btm_cb.acl_cb_.set_disconnect_reason(acl_disc_reason);
}
@@ -2702,6 +2698,12 @@ void btm_acl_disconnected(tHCI_STATUS status, uint16_t handle,
             hci_error_code_text(status).c_str());
  }

  /* There can be a case when we rejected PIN code authentication */
  /* otherwise save a new reason */
  if (btm_get_acl_disc_reason_code() != HCI_ERR_HOST_REJECT_SECURITY) {
    acl_set_disconnect_reason(static_cast<tHCI_STATUS>(reason));
  }

  /* If L2CAP or SCO doesn't know about it, send it to ISO */
  if (!l2c_link_hci_disc_comp(handle, reason) &&
      !btm_sco_removed(handle, reason)) {
+0 −1
Original line number Diff line number Diff line
@@ -271,7 +271,6 @@ tBT_TRANSPORT acl_get_transport_from_handle(uint16_t handle);
uint16_t acl_get_hci_handle_for_hcif(const RawAddress& bd_addr,
                                     tBT_TRANSPORT transport);

tHCI_STATUS acl_get_disconnect_reason();
void acl_set_disconnect_reason(tHCI_STATUS acl_disc_reason);

bool acl_is_role_switch_allowed();
+1 −8
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ extern tBTM_CB btm_cb;
bool BTM_ReadPowerMode(const RawAddress& remote_bda, tBTM_PM_MODE* p_mode);
bool btm_dev_support_role_switch(const RawAddress& bd_addr);
tBTM_STATUS btm_sec_disconnect(uint16_t handle, tHCI_STATUS reason);
tHCI_STATUS acl_get_disconnect_reason();
void btm_acl_created(const RawAddress& bda, uint16_t hci_handle,
                     uint8_t link_role, tBT_TRANSPORT transport);
void btm_acl_removed(uint16_t handle);
@@ -340,13 +339,7 @@ bool l2c_link_hci_disc_comp(uint16_t handle, uint8_t reason) {
  if (!p_lcb) {
    status = false;
  } else {
    /* There can be a case when we rejected PIN code authentication */
    /* otherwise save a new reason */
    if (acl_get_disconnect_reason() != HCI_ERR_HOST_REJECT_SECURITY) {
      acl_set_disconnect_reason(static_cast<tHCI_STATUS>(reason));
    }

    p_lcb->SetDisconnectReason(acl_get_disconnect_reason());
    p_lcb->SetDisconnectReason(reason);

    /* Just in case app decides to try again in the callback context */
    p_lcb->link_state = LST_DISCONNECTING;