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

Commit fab3be33 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Separated initialize and re-initialize of DM control block"

parents 7307dc2f 0acd6e4f
Loading
Loading
Loading
Loading
+32 −12
Original line number Diff line number Diff line
@@ -298,13 +298,35 @@ void bta_dm_enable(tBTA_DM_MSG *p_data)
**
** Function         bta_dm_init_cb
**
** Description      Initializes or re-initializes the bta_dm_cb control block
** Description      Initializes the bta_dm_cb control block
**
**
** Returns          void
**
*******************************************************************************/
void bta_dm_init_cb(void)
{
    memset(&bta_dm_cb, 0, sizeof(bta_dm_cb));
    bta_dm_cb.disable_timer = alarm_new("bta_dm.disable_timer");
    bta_dm_cb.switch_delay_timer = alarm_new("bta_dm.switch_delay_timer");
    for (size_t i = 0; i < BTA_DM_NUM_PM_TIMER; i++) {
        for (size_t j = 0; j < BTA_DM_PM_MODE_TIMER_MAX; j++) {
            bta_dm_cb.pm_timer[i].timer[j] = alarm_new("bta_dm.pm_timer");
        }
    }
}

/*******************************************************************************
**
** Function         bta_dm_deinit_cb
**
** Description      De-initializes the bta_dm_cb control block
**
**
** Returns          void
**
*******************************************************************************/
void bta_dm_deinit_cb(void)
{
    /*
     * TODO: Should alarm_free() the bta_dm_cb timers during graceful
@@ -318,13 +340,6 @@ void bta_dm_init_cb(void)
      }
    }
    memset(&bta_dm_cb, 0, sizeof(bta_dm_cb));
    bta_dm_cb.disable_timer = alarm_new("bta_dm.disable_timer");
    bta_dm_cb.switch_delay_timer = alarm_new("bta_dm.switch_delay_timer");
    for (size_t i = 0; i < BTA_DM_NUM_PM_TIMER; i++) {
        for (size_t j = 0; j < BTA_DM_PM_MODE_TIMER_MAX; j++) {
            bta_dm_cb.pm_timer[i].timer[j] = alarm_new("bta_dm.pm_timer");
        }
    }
}

/*******************************************************************************
@@ -362,7 +377,12 @@ static void bta_dm_sys_hw_cback( tBTA_SYS_HW_EVT status )
            bta_dm_cb.p_sec_cback(BTA_DM_DISABLE_EVT, NULL);

        /* reinitialize the control block */
        bta_dm_init_cb();
        bta_dm_deinit_cb();

        /* hw is ready, go on with BTA DM initialization */
        alarm_free(bta_dm_search_cb.search_timer);
        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( BTA_SYS_HW_BLUETOOTH );
+0 −2
Original line number Diff line number Diff line
@@ -67,8 +67,6 @@ tBTA_STATUS BTA_EnableBluetooth(tBTA_DM_SEC_CBACK *p_cback)
    if (bta_dm_cb.disabling)
        return BTA_FAILURE;

    bta_dm_init_cb();

    bta_sys_register(BTA_ID_DM, &bta_dm_reg );
    bta_sys_register(BTA_ID_DM_SEARCH, &bta_dm_search_reg );