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

Commit c361d721 authored by Zach Johnson's avatar Zach Johnson
Browse files

Call BTA_dm_sys_hw_cback directly

It's registered pretty much all of the time

Bug: 159815595
Tag: #refactor
Test: compile & verify basic functions working
Change-Id: I2202380353f053e81c46f64e558f3d0b1d8148e9
parent 214bea6b
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -106,7 +106,6 @@ static bool bta_dm_read_remote_device_name(const RawAddress& bd_addr,
                                           tBT_TRANSPORT transport);
static void bta_dm_discover_device(const RawAddress& remote_bd_addr);

static void bta_dm_sys_hw_cback(tBTA_SYS_HW_EVT status);
static void bta_dm_disable_search_and_disc(void);

static uint8_t bta_dm_ble_smp_cback(tBTM_LE_EVT event, const RawAddress& bda,
@@ -261,9 +260,6 @@ void bta_dm_enable(tBTA_DM_SEC_CBACK* p_sec_cback) {
    return;
  }

  /* first, register our callback to SYS HW manager */
  bta_sys_hw_register(bta_dm_sys_hw_cback);

  /* make sure security callback is saved - if no callback, do not erase the
  previous one,
  it could be an error recovery mechanism */
@@ -332,7 +328,7 @@ void bta_dm_deinit_cb(void) {
 * Returns          void
 *
 ******************************************************************************/
static void bta_dm_sys_hw_cback(tBTA_SYS_HW_EVT status) {
void BTA_dm_sys_hw_cback(tBTA_SYS_HW_EVT status) {
  DEV_CLASS dev_class;
  tBTA_DM_SEC_CBACK* temp_cback;
  uint8_t key_mask = 0;
@@ -359,8 +355,6 @@ static void bta_dm_sys_hw_cback(tBTA_SYS_HW_EVT status) {
    alarm_free(bta_dm_search_cb.gatt_close_timer);
    memset(&bta_dm_search_cb, 0, sizeof(bta_dm_search_cb));

    /* unregister from SYS */
    bta_sys_hw_unregister();
    /* notify BTA DM is now unactive */
    bta_dm_cb.is_bta_dm_active = false;
  } else if (status == BTA_SYS_HW_ON_EVT) {
@@ -2852,7 +2846,6 @@ static void bta_dm_disable_conn_down_timer_cback(UNUSED_ATTR void* data) {
  bta_dm_disable_pm();

  /* register our callback to SYS HW manager */
  bta_sys_hw_register(bta_dm_sys_hw_cback);
  send_bta_sys_hw_event(BTA_SYS_API_DISABLE_EVT);

  bta_dm_cb.disabling = false;
+0 −3
Original line number Diff line number Diff line
@@ -210,9 +210,6 @@ extern void bta_sys_start_timer(alarm_t* alarm, uint64_t interval_ms,
                                uint16_t event, uint16_t layer_specific);
extern void bta_sys_disable();

extern void bta_sys_hw_register(tBTA_SYS_HW_CBACK* cback);
extern void bta_sys_hw_unregister();

extern void bta_sys_rm_register(tBTA_SYS_CONN_CBACK* p_cback);
extern void bta_sys_pm_register(tBTA_SYS_CONN_CBACK* p_cback);

+7 −22
Original line number Diff line number Diff line
@@ -44,6 +44,8 @@
#include "bta_ar_api.h"
#endif

extern void BTA_dm_sys_hw_cback(tBTA_SYS_HW_EVT status);

/* system manager control block definition */
tBTA_SYS_CB bta_sys_cb;

@@ -174,12 +176,6 @@ void send_bta_sys_hw_event(tBTA_SYS_HW_EVT event) {
  do_in_main_thread(FROM_HERE, base::Bind(bta_sys_sm_execute, event));
}

void bta_sys_hw_register(tBTA_SYS_HW_CBACK* cback) {
  bta_sys_cb.sys_hw_cback = cback;
}

void bta_sys_hw_unregister() { bta_sys_cb.sys_hw_cback = NULL; }

/*******************************************************************************
 *
 * Function         bta_sys_hw_error
@@ -193,8 +189,8 @@ void bta_sys_hw_unregister() { bta_sys_cb.sys_hw_cback = NULL; }
 ******************************************************************************/
void bta_sys_hw_error() {
  APPL_TRACE_DEBUG("%s", __func__);
  if (bta_sys_cb.bluetooth_active && bta_sys_cb.sys_hw_cback != NULL) {
    bta_sys_cb.sys_hw_cback(BTA_SYS_HW_ERROR_EVT);
  if (bta_sys_cb.bluetooth_active) {
    BTA_dm_sys_hw_cback(BTA_SYS_HW_ERROR_EVT);
  }
}

@@ -218,10 +214,7 @@ void bta_sys_hw_api_enable() {
    BTM_DeviceReset();
  } else {
    bta_sys_cb.bluetooth_active = true;

    /* HW already in use, so directly notify the caller */
    if (bta_sys_cb.sys_hw_cback != NULL)
      bta_sys_cb.sys_hw_cback(BTA_SYS_HW_ON_EVT);
    BTA_dm_sys_hw_cback(BTA_SYS_HW_ON_EVT);
  }
}

@@ -259,11 +252,7 @@ void bta_sys_hw_api_disable() {
 * Returns          success or failure
 *
 ******************************************************************************/
void bta_sys_hw_evt_disabled() {
  if (bta_sys_cb.sys_hw_cback != NULL) {
    bta_sys_cb.sys_hw_cback(BTA_SYS_HW_OFF_EVT);
  }
}
void bta_sys_hw_evt_disabled() { BTA_dm_sys_hw_cback(BTA_SYS_HW_OFF_EVT); }

/*******************************************************************************
 *
@@ -276,11 +265,7 @@ void bta_sys_hw_evt_disabled() {
 * Returns          success or failure
 *
 ******************************************************************************/
void bta_sys_hw_evt_stack_enabled() {
  if (bta_sys_cb.sys_hw_cback != NULL) {
    bta_sys_cb.sys_hw_cback(BTA_SYS_HW_ON_EVT);
  }
}
void bta_sys_hw_evt_stack_enabled() { BTA_dm_sys_hw_cback(BTA_SYS_HW_ON_EVT); }

/*******************************************************************************
 *