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

Commit cf592780 authored by Zach Johnson's avatar Zach Johnson Committed by Automerger Merge Worker
Browse files

Skip the message passing and call BTA_dm_acl_down directly am: a81e1c68 am: 14f6ea59

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

Change-Id: Icd67f8d37db4813c84c2b6076abd3a3fda2e7b37
parents 8d09bb29 14f6ea59
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -2831,16 +2831,13 @@ static void bta_dm_acl_down(const RawAddress& bd_addr,
  bta_dm_adjust_roles(true);
}

void BTA_dm_acl_down(const RawAddress bd_addr, tBT_TRANSPORT transport) {
  do_in_main_thread(FROM_HERE, base::Bind(bta_dm_acl_down, bd_addr, transport));
}

/** Callback from btm when acl connection goes up or down */
static void bta_dm_bl_change_cback(tBTM_BL_EVENT_DATA* p_data) {
  switch (p_data->event) {
    case BTM_BL_DISCN_EVT:
      /* connection down */
      do_in_main_thread(FROM_HERE,
                        base::Bind(bta_dm_acl_down, *p_data->discn.p_bda,
                                   p_data->discn.transport));
      break;

    case BTM_BL_ROLE_CHG_EVT: {
      const auto& tmp = p_data->role_chg;
      do_in_main_thread(FROM_HERE, base::Bind(handle_role_change, *tmp.p_bda,
+2 −10
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ static tBTM_STATUS btm_set_packet_types(tACL_CONN* p, uint16_t pkt_types);
void BTIF_dm_report_inquiry_status_change(uint8_t busy_level_flags);
void BTA_dm_acl_up(const RawAddress bd_addr, tBT_TRANSPORT transport,
                   uint16_t handle);
void BTA_dm_acl_down(const RawAddress bd_addr, tBT_TRANSPORT transport);
/* 3 seconds timeout waiting for responses */
#define BTM_DEV_REPLY_TIMEOUT_MS (3 * 1000)

@@ -371,16 +372,7 @@ void btm_acl_removed(const RawAddress& bda, tBT_TRANSPORT transport) {
    /* Only notify if link up has had a chance to be issued */
    if (p->link_up_issued) {
      p->link_up_issued = false;

      /* If anyone cares, indicate the database changed */
      if (btm_cb.acl_cb_.p_bl_changed_cb) {
        tBTM_BL_EVENT_DATA evt_data;
        evt_data.event = BTM_BL_DISCN_EVT;
        evt_data.discn.p_bda = &bda;
        evt_data.discn.handle = p->hci_handle;
        evt_data.discn.transport = p->transport;
        (*btm_cb.acl_cb_.p_bl_changed_cb)(&evt_data);
      }
      BTA_dm_acl_down(bda, transport);
    }

    BTM_TRACE_DEBUG(
+0 −11
Original line number Diff line number Diff line
@@ -129,8 +129,6 @@ typedef struct {
} tBTM_INQ_TXPWR_RESULT;

enum {
  BTM_BL_CONN_EVT,
  BTM_BL_DISCN_EVT,
  BTM_BL_ROLE_CHG_EVT,
  BTM_BL_COLLISION_EVT
};
@@ -152,14 +150,6 @@ typedef struct {
  tBT_TRANSPORT transport; /* link is LE or not */
} tBTM_BL_CONN_DATA;

/* the data type associated with BTM_BL_DISCN_EVT */
typedef struct {
  tBTM_BL_EVENT event;     /* The event reported. */
  const RawAddress* p_bda; /* The address of the disconnected device */
  uint16_t handle;         /* disconnected connection handle */
  tBT_TRANSPORT transport; /* link is LE link or not */
} tBTM_BL_DISCN_DATA;

#define BTM_INQUIRY_STARTED 1
#define BTM_INQUIRY_CANCELLED 2
#define BTM_INQUIRY_COMPLETE 3
@@ -174,7 +164,6 @@ typedef struct {
typedef union {
  tBTM_BL_EVENT event;        /* The event reported. */
  tBTM_BL_CONN_DATA conn;     /* The data associated with BTM_BL_CONN_EVT */
  tBTM_BL_DISCN_DATA discn;   /* The data associated with BTM_BL_DISCN_EVT */
  tBTM_BL_ROLE_CHG_DATA
      role_chg; /*The data associated with BTM_BL_ROLE_CHG_EVT */
} tBTM_BL_EVENT_DATA;