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

Commit 611a44d2 authored by Jakub Pawlowski's avatar Jakub Pawlowski
Browse files

Ignore return value of btsnd_hcic_* functions

btsnd_hcic_* functions return only true. This patch makes sure that no
logic is waiting for "false" value.
Few methods, that had their return value dependent on result of
btsnd_hcic_* were made void.

Test: unit tests pass
Change-Id: I43cff62f461ff35f4bd84e5338f1a587b6a05c58
parent bd703cfe
Loading
Loading
Loading
Loading
+25 −72
Original line number Diff line number Diff line
@@ -683,9 +683,7 @@ tBTM_STATUS BTM_SwitchRole (BD_ADDR remote_bd_addr, uint8_t new_role, tBTM_CMPL_
            /* bypass turning off encryption if change link key is already doing it */
            if (p->encrypt_state != BTM_ACL_ENCRYPT_STATE_ENCRYPT_OFF)
            {
                if (!btsnd_hcic_set_conn_encrypt (p->hci_handle, false))
                    return(BTM_NO_RESOURCES);
                else
                btsnd_hcic_set_conn_encrypt (p->hci_handle, false);
                p->encrypt_state = BTM_ACL_ENCRYPT_STATE_ENCRYPT_OFF;
            }

@@ -693,9 +691,7 @@ tBTM_STATUS BTM_SwitchRole (BD_ADDR remote_bd_addr, uint8_t new_role, tBTM_CMPL_
        }
        else
        {
            if (!btsnd_hcic_switch_role (remote_bd_addr, new_role))
                return(BTM_NO_RESOURCES);

            btsnd_hcic_switch_role (remote_bd_addr, new_role);
            p->switch_role_state = BTM_ACL_SWKEY_STATE_IN_PROGRESS;

#if (BTM_DISC_DURING_RS == TRUE)
@@ -761,18 +757,10 @@ void btm_acl_encrypt_change (uint16_t handle, uint8_t status, uint8_t encr_enabl
            p->encrypt_state = BTM_ACL_ENCRYPT_STATE_TEMP_FUNC;
        }

        if (!btsnd_hcic_switch_role (p->remote_addr, (uint8_t)!p->link_role))
        {
            p->switch_role_state = BTM_ACL_SWKEY_STATE_IDLE;
            p->encrypt_state = BTM_ACL_ENCRYPT_STATE_IDLE;
            btm_acl_report_role_change(btm_cb.devcb.switch_role_ref_data.hci_status, p->remote_addr);
        }
        btsnd_hcic_switch_role(p->remote_addr, (uint8_t)!p->link_role);
#if (BTM_DISC_DURING_RS == TRUE)
        else
        {
        if ((p_dev_rec = btm_find_dev (p->remote_addr)) != NULL)
            p_dev_rec->rs_disc_pending = BTM_SEC_RS_PENDING;
        }
#endif

    }
@@ -1315,10 +1303,8 @@ tBTM_STATUS BTM_SetLinkSuperTout (BD_ADDR remote_bda, uint16_t timeout)
        /* Only send if current role is Master; 2.0 spec requires this */
        if (p->link_role == BTM_ROLE_MASTER)
        {
            if (!btsnd_hcic_write_link_super_tout (LOCAL_BR_EDR_CONTROLLER_ID,
                                                   p->hci_handle, timeout))
                return(BTM_NO_RESOURCES);

            btsnd_hcic_write_link_super_tout(LOCAL_BR_EDR_CONTROLLER_ID,
                                             p->hci_handle, timeout);
            return(BTM_CMD_STARTED);
        }
        else
@@ -1503,13 +1489,11 @@ void btm_acl_role_changed (uint8_t hci_status, BD_ADDR bd_addr, uint8_t new_role
    /* if idle, we did not change encryption */
    if (p->switch_role_state == BTM_ACL_SWKEY_STATE_SWITCHING)
    {
        if (btsnd_hcic_set_conn_encrypt (p->hci_handle, true))
        {
        btsnd_hcic_set_conn_encrypt (p->hci_handle, true);
        p->encrypt_state = BTM_ACL_ENCRYPT_STATE_ENCRYPT_ON;
        p->switch_role_state = BTM_ACL_SWKEY_STATE_ENCRYPTION_ON;
        return;
    }
    }

    /* Set the switch_role_state to IDLE since the reply received from HCI */
    /* regardless of its result either success or failed. */
@@ -1658,11 +1642,7 @@ tBTM_STATUS btm_set_packet_types (tACL_CONN *p, uint16_t pkt_types)

    BTM_TRACE_DEBUG ("SetPacketType Mask -> 0x%04x", temp_pkt_types);

    if (!btsnd_hcic_change_conn_type (p->hci_handle, temp_pkt_types))
    {
        return(BTM_NO_RESOURCES);
    }

    btsnd_hcic_change_conn_type (p->hci_handle, temp_pkt_types);
    p->pkt_types_mask = temp_pkt_types;

    return(BTM_CMD_STARTED);
@@ -1894,15 +1874,9 @@ tBTM_STATUS BTM_SetQoS (BD_ADDR bd, FLOW_SPEC *p_flow, tBTM_CMPL_CB *p_cb)
                           btm_qos_setup_timeout, NULL,
                           btu_general_alarm_queue);

        if (!btsnd_hcic_qos_setup (p->hci_handle, p_flow->qos_flags, p_flow->service_type,
        btsnd_hcic_qos_setup(p->hci_handle, p_flow->qos_flags, p_flow->service_type,
                                   p_flow->token_rate, p_flow->peak_bandwidth,
                                   p_flow->latency,p_flow->delay_variation))
        {
            btm_cb.devcb.p_qos_setup_cmpl_cb = NULL;
            alarm_cancel(btm_cb.devcb.qos_setup_timer);
            return(BTM_NO_RESOURCES);
        }
        else
                                   p_flow->latency,p_flow->delay_variation);
        return(BTM_CMD_STARTED);
    }

@@ -2008,13 +1982,7 @@ tBTM_STATUS BTM_ReadRSSI (const BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb)
                           BTM_DEV_REPLY_TIMEOUT_MS, btm_read_rssi_timeout,
                           NULL, btu_general_alarm_queue);

        if (!btsnd_hcic_read_rssi (p->hci_handle))
        {
            btm_cb.devcb.p_rssi_cmpl_cb = NULL;
            alarm_cancel(btm_cb.devcb.read_rssi_timer);
            return(BTM_NO_RESOURCES);
        }
        else
        btsnd_hcic_read_rssi (p->hci_handle);
        return(BTM_CMD_STARTED);
    }

@@ -2054,13 +2022,7 @@ tBTM_STATUS BTM_ReadLinkQuality (BD_ADDR remote_bda, tBTM_CMPL_CB *p_cb)
                           btm_read_link_quality_timeout, NULL,
                           btu_general_alarm_queue);

        if (!btsnd_hcic_get_link_quality (p->hci_handle))
        {
            btm_cb.devcb.p_link_qual_cmpl_cb = NULL;
            alarm_cancel(btm_cb.devcb.read_link_quality_timer);
            return(BTM_NO_RESOURCES);
        }
        else
        btsnd_hcic_get_link_quality(p->hci_handle);
        return(BTM_CMD_STARTED);
    }

@@ -2380,8 +2342,7 @@ tBTM_STATUS btm_remove_acl (BD_ADDR bd_addr, tBT_TRANSPORT transport)
        if (hci_handle != 0xFFFF && p_dev_rec &&
             p_dev_rec->sec_state!= BTM_SEC_STATE_DISCONNECTING)
        {
            if (!btsnd_hcic_disconnect (hci_handle, HCI_ERR_PEER_USER))
                status = BTM_NO_RESOURCES;
            btsnd_hcic_disconnect(hci_handle, HCI_ERR_PEER_USER);
        }
        else
            status = BTM_UNKNOWN_ADDR;
@@ -2435,19 +2396,11 @@ void btm_cont_rswitch (tACL_CONN *p, tBTM_SEC_DEV_REC *p_dev_rec,
        if (p_dev_rec != NULL && ((p_dev_rec->sec_flags & BTM_SEC_ENCRYPTED) != 0)
            && !BTM_EPR_AVAILABLE(p))
        {
            if (btsnd_hcic_set_conn_encrypt (p->hci_handle, false))
            {
            btsnd_hcic_set_conn_encrypt(p->hci_handle, false);
            p->encrypt_state = BTM_ACL_ENCRYPT_STATE_ENCRYPT_OFF;
            if (p->switch_role_state == BTM_ACL_SWKEY_STATE_MODE_CHANGE)
                p->switch_role_state = BTM_ACL_SWKEY_STATE_ENCRYPTION_OFF;
        }
            else
            {
                /* Error occurred; set states back to Idle */
                if (p->switch_role_state == BTM_ACL_SWKEY_STATE_MODE_CHANGE)
                    sw_ok = false;
            }
        }
        else    /* Encryption not used or EPR supported, continue with switch
                   and/or change of link key */
        {
+15 −42
Original line number Diff line number Diff line
@@ -747,10 +747,7 @@ void BTM_BleReceiverTest(uint8_t rx_freq, tBTM_CMPL_CB *p_cmd_cmpl_cback)
{
     btm_cb.devcb.p_le_test_cmd_cmpl_cb = p_cmd_cmpl_cback;

     if (btsnd_hcic_ble_receiver_test(rx_freq) == false)
     {
          BTM_TRACE_ERROR("%s: Unable to Trigger LE receiver test", __func__);
     }
     btsnd_hcic_ble_receiver_test(rx_freq);
}

/*******************************************************************************
@@ -769,10 +766,7 @@ void BTM_BleTransmitterTest(uint8_t tx_freq, uint8_t test_data_len,
                                 uint8_t packet_payload, tBTM_CMPL_CB *p_cmd_cmpl_cback)
{
     btm_cb.devcb.p_le_test_cmd_cmpl_cb = p_cmd_cmpl_cback;
     if (btsnd_hcic_ble_transmitter_test(tx_freq, test_data_len, packet_payload) == false)
     {
          BTM_TRACE_ERROR("%s: Unable to Trigger LE transmitter test", __func__);
     }
     btsnd_hcic_ble_transmitter_test(tx_freq, test_data_len, packet_payload);
}

/*******************************************************************************
@@ -788,10 +782,7 @@ void BTM_BleTestEnd(tBTM_CMPL_CB *p_cmd_cmpl_cback)
{
     btm_cb.devcb.p_le_test_cmd_cmpl_cb = p_cmd_cmpl_cback;

     if (btsnd_hcic_ble_test_end() == false)
     {
          BTM_TRACE_ERROR("%s: Unable to End the LE TX/RX test", __func__);
     }
     btsnd_hcic_ble_test_end();
}

/*******************************************************************************
@@ -1564,7 +1555,6 @@ tBTM_STATUS btm_ble_start_encrypt(BD_ADDR bda, bool use_stk, BT_OCTET16 stk)
    tBTM_CB *p_cb = &btm_cb;
    tBTM_SEC_DEV_REC    *p_rec = btm_find_dev (bda);
    BT_OCTET8    dummy_rand = {0};
    tBTM_STATUS  rt = BTM_NO_RESOURCES;

    BTM_TRACE_DEBUG ("btm_ble_start_encrypt");

@@ -1584,26 +1574,23 @@ tBTM_STATUS btm_ble_start_encrypt(BD_ADDR bda, bool use_stk, BT_OCTET16 stk)

    if (use_stk)
    {
        if (btsnd_hcic_ble_start_enc(p_rec->ble_hci_handle, dummy_rand, 0, stk))
            rt = BTM_CMD_STARTED;
        btsnd_hcic_ble_start_enc(p_rec->ble_hci_handle, dummy_rand, 0, stk);
    }
    else if (p_rec->ble.key_type & BTM_LE_KEY_PENC)
    {
        if (btsnd_hcic_ble_start_enc(p_rec->ble_hci_handle, p_rec->ble.keys.rand,
                                     p_rec->ble.keys.ediv, p_rec->ble.keys.pltk))
            rt = BTM_CMD_STARTED;
        btsnd_hcic_ble_start_enc(p_rec->ble_hci_handle, p_rec->ble.keys.rand,
                                 p_rec->ble.keys.ediv, p_rec->ble.keys.pltk);
    }
    else
    {
        BTM_TRACE_ERROR("No key available to encrypt the link");
        return BTM_NO_RESOURCES;
    }
    if (rt == BTM_CMD_STARTED)
    {

    if (p_rec->sec_state == BTM_SEC_STATE_IDLE)
        p_rec->sec_state = BTM_SEC_STATE_ENCRYPTING;
    }

    return rt;
    return BTM_CMD_STARTED;
}

/*******************************************************************************
@@ -2508,11 +2495,7 @@ static void btm_ble_process_er(tBTM_RAND_ENC *p)
    {
        memcpy(&btm_cb.devcb.ble_encryption_key_value[0], p->param_buf, BT_OCTET8_LEN);

        if (!btsnd_hcic_ble_rand((void *)btm_ble_process_er2))
        {
            memset(&btm_cb.devcb.ble_encryption_key_value, 0, sizeof(BT_OCTET16));
            BTM_TRACE_ERROR("Generating ER2 failed.");
        }
        btsnd_hcic_ble_rand((void *)btm_ble_process_er2);
    }
    else
    {
@@ -2552,10 +2535,7 @@ static void btm_ble_process_irk(tSMP_ENC *p)
    }

    /* proceed generate ER */
    if (!btsnd_hcic_ble_rand((void *)btm_ble_process_er))
    {
        BTM_TRACE_ERROR("Generating ER failed.");
    }
    btsnd_hcic_ble_rand((void *)btm_ble_process_er);
}

/*******************************************************************************
@@ -2660,11 +2640,7 @@ static void btm_ble_process_ir(tBTM_RAND_ENC *p)
        /* remembering in control block */
        memcpy(btm_cb.devcb.id_keys.ir, p->param_buf, BT_OCTET8_LEN);

        if (!btsnd_hcic_ble_rand((void *)btm_ble_process_ir2))
        {
            BTM_TRACE_ERROR("Generating IR2 failed.");
            memset(&btm_cb.devcb.id_keys, 0, sizeof(tBTM_BLE_LOCAL_ID_KEYS));
        }
        btsnd_hcic_ble_rand((void *)btm_ble_process_ir2);
    }
}

@@ -2682,10 +2658,7 @@ void btm_ble_reset_id( void )
    BTM_TRACE_DEBUG ("btm_ble_reset_id");

    /* regenrate Identity Root*/
    if (!btsnd_hcic_ble_rand((void *)btm_ble_process_ir))
    {
        BTM_TRACE_DEBUG("Generating IR failed.");
    }
    btsnd_hcic_ble_rand((void *)btm_ble_process_ir);
}

    #if BTM_BLE_CONFORMANCE_TESTING == true
+1 −5
Original line number Diff line number Diff line
@@ -193,11 +193,7 @@ void btm_gen_non_resolvable_private_addr (tBTM_BLE_ADDR_CBACK *p_cback, void *p)

    p_mgnt_cb->p_generate_cback = p_cback;
    p_mgnt_cb->p                = p;
    if (!btsnd_hcic_ble_rand((void *)btm_gen_non_resolve_paddr_cmpl))
    {
        btm_gen_non_resolve_paddr_cmpl(NULL);
    }

    btsnd_hcic_ble_rand((void *)btm_gen_non_resolve_paddr_cmpl);
}

#if (SMP_INCLUDED == TRUE)
+19 −31
Original line number Diff line number Diff line
@@ -381,7 +381,7 @@ bool btm_ble_start_auto_conn(bool start)
            }
#endif

            if (!btsnd_hcic_ble_create_ll_conn (scan_int,  /* uint16_t scan_int      */
            btsnd_hcic_ble_create_ll_conn(scan_int,  /* uint16_t scan_int      */
                                          scan_win,    /* uint16_t scan_win      */
                                          0x01,                   /* uint8_t white_list     */
                                          peer_addr_type,        /* uint8_t addr_type_peer */
@@ -392,17 +392,9 @@ bool btm_ble_start_auto_conn(bool start)
                                          BTM_BLE_CONN_SLAVE_LATENCY_DEF,  /* uint16_t conn_latency  */
                                          BTM_BLE_CONN_TIMEOUT_DEF,        /* uint16_t conn_timeout  */
                                          0,                       /* uint16_t min_len       */
                                                0))                      /* uint16_t max_len       */
            {
                /* start auto connection failed */
                exec =  false;
                p_cb->wl_state &= ~BTM_BLE_WL_INIT;
            }
            else
            {
                                          0);                      /* uint16_t max_len       */
            btm_ble_set_conn_st (BLE_BG_CONN);
        }
        }
        else
        {
            exec = false;
@@ -462,14 +454,11 @@ bool btm_ble_start_select_conn(bool start, tBTM_BLE_SEL_CBACK *p_select_cb
            if (btm_cb.cmn_ble_vsc_cb.extended_scan_support == 0)
            {
                /* use passive scan by default */
                if (!btsnd_hcic_ble_set_scan_params(BTM_BLE_SCAN_MODE_PASS,
                btsnd_hcic_ble_set_scan_params(BTM_BLE_SCAN_MODE_PASS,
                                               scan_int,
                                               scan_win,
                                               p_cb->addr_mgnt_cb.own_addr_type,
                                                    SP_ADV_WL))
                {
                    return false;
                }
                                               SP_ADV_WL);
            }
            else
            {
@@ -493,8 +482,7 @@ bool btm_ble_start_select_conn(bool start, tBTM_BLE_SEL_CBACK *p_select_cb
#if (BLE_PRIVACY_SPT == TRUE)
                btm_ble_enable_resolving_list_for_platform(BTM_BLE_RL_SCAN);
#endif
                if (!btsnd_hcic_ble_set_scan_enable(true, true)) /* duplicate filtering enabled */
                     return false;
                btsnd_hcic_ble_set_scan_enable(true, true); /* duplicate filtering enabled */

                 /* mark up inquiry status flag */
                 p_cb->scan_activity |= BTM_LE_SELECT_CONN_ACTIVE;
+62 −112
Original line number Diff line number Diff line
@@ -461,7 +461,7 @@ tBTM_STATUS BTM_BleBroadcast(bool start)
    if (start && p_cb->adv_mode == BTM_BLE_ADV_DISABLE)
    {
        /* update adv params */
        if (!btsnd_hcic_ble_write_adv_params ((uint16_t)(p_cb->adv_interval_min ? p_cb->adv_interval_min :
        btsnd_hcic_ble_write_adv_params ((uint16_t)(p_cb->adv_interval_min ? p_cb->adv_interval_min :
                                         BTM_BLE_GAP_ADV_INT),
                                         (uint16_t)(p_cb->adv_interval_max ? p_cb->adv_interval_max :
                                         BTM_BLE_GAP_ADV_INT),
@@ -470,12 +470,9 @@ tBTM_STATUS BTM_BleBroadcast(bool start)
                                         p_cb->direct_bda.type,
                                         p_cb->direct_bda.bda,
                                         p_cb->adv_chnl_map,
                                              p_cb->afp))
                                         p_cb->afp);

            status = BTM_NO_RESOURCES;
        else
        p_cb->evt_type = evt_type;

        status = btm_ble_start_adv ();
    }
    else if (!start)
@@ -1195,27 +1192,20 @@ void BTM_BleSetScanParams(tGATT_IF client_if, uint32_t scan_interval, uint32_t s
void BTM_BleWriteScanRsp(uint8_t* data, uint8_t length,
                         tBTM_BLE_ADV_DATA_CMPL_CBACK *p_adv_data_cback)
{
    tBTM_STATUS     status = BTM_NO_RESOURCES;

    BTM_TRACE_EVENT ("%s: length: %d", __func__, length);
    if (!controller_get_interface()->supports_ble()) {
        p_adv_data_cback(BTM_ILLEGAL_VALUE);
        return;
    }

    if (btsnd_hcic_ble_set_scan_rsp_data(length, data))
    {
        status = BTM_SUCCESS;
    btsnd_hcic_ble_set_scan_rsp_data(length, data);

    if (length != 0)
        btm_cb.ble_ctr_cb.inq_var.scan_rsp = true;
    else
        btm_cb.ble_ctr_cb.inq_var.scan_rsp = false;
    }
    else
        status = BTM_ILLEGAL_VALUE;

    p_adv_data_cback(status);
    p_adv_data_cback(BTM_SUCCESS);
}

/*******************************************************************************
@@ -1242,10 +1232,8 @@ void BTM_BleWriteAdvData(uint8_t* data, uint8_t length,

    //TODO(jpawlowski): fill flags, old code had them empty always.

    if (btsnd_hcic_ble_set_adv_data(length, data))
    btsnd_hcic_ble_set_adv_data(length, data);
    p_adv_data_cback(BTM_SUCCESS);
    else
        p_adv_data_cback(BTM_NO_RESOURCES);
}

/*******************************************************************************
@@ -1497,24 +1485,14 @@ tBTM_STATUS btm_ble_set_discoverability(uint16_t combined_mode)
            btm_ble_stop_adv();

            /* update adv params */
            if (!btsnd_hcic_ble_write_adv_params (adv_int_min,
                                                  adv_int_max,
                                                  evt_type,
                                                  own_addr_type,
                                                  init_addr_type,
                                                  p_addr_ptr,
                                                  p_cb->adv_chnl_map,
                                                  p_cb->afp))
            {
                status = BTM_NO_RESOURCES;
            }
            else
            {
            btsnd_hcic_ble_write_adv_params(adv_int_min, adv_int_max, evt_type,
                                            own_addr_type, init_addr_type,
                                            p_addr_ptr, p_cb->adv_chnl_map,
                                            p_cb->afp);
            p_cb->evt_type = evt_type;
            p_cb->adv_addr_type = own_addr_type;
        }
    }
    }

    if (status == BTM_SUCCESS && p_cb->adv_mode != new_mode)
    {
@@ -1602,24 +1580,14 @@ tBTM_STATUS btm_ble_set_connectability(uint16_t combined_mode)
        {
            btm_ble_stop_adv();

            if (!btsnd_hcic_ble_write_adv_params (adv_int_min,
                                                  adv_int_max,
                                                  evt_type,
                                                  own_addr_type,
                                                  peer_addr_type,
                                                  p_addr_ptr,
                                                  p_cb->adv_chnl_map,
                                                  p_cb->afp))
            {
                status = BTM_NO_RESOURCES;
            }
            else
            {
            btsnd_hcic_ble_write_adv_params(adv_int_min, adv_int_max, evt_type,
                                            own_addr_type, peer_addr_type,
                                            p_addr_ptr, p_cb->adv_chnl_map,
                                            p_cb->afp);
            p_cb->evt_type = evt_type;
            p_cb->adv_addr_type = own_addr_type;
        }
    }
    }

    /* update advertising mode */
    if (status == BTM_SUCCESS && new_mode != p_cb->adv_mode)
@@ -1873,8 +1841,8 @@ static void btm_ble_update_adv_flag(uint8_t flag)
        p_adv_data->p_pad = p;
    }

    if (btsnd_hcic_ble_set_adv_data((uint8_t)(p_adv_data->p_pad - p_adv_data->ad_data),
                                    p_adv_data->ad_data))
    btsnd_hcic_ble_set_adv_data((uint8_t)(p_adv_data->p_pad - p_adv_data->ad_data),
                                p_adv_data->ad_data);
    p_adv_data->data_mask |= BTM_BLE_AD_BIT_FLAGS;

}
@@ -2491,21 +2459,16 @@ static void btm_ble_process_adv_pkt_cont(BD_ADDR bda, uint8_t addr_type, uint8_t
tBTM_STATUS btm_ble_start_scan(void)
{
    tBTM_BLE_INQ_CB *p_inq = &btm_cb.ble_ctr_cb.inq_var;
    tBTM_STATUS status = BTM_CMD_STARTED;

    /* start scan, disable duplicate filtering */
    if (!btsnd_hcic_ble_set_scan_enable (BTM_BLE_SCAN_ENABLE, p_inq->scan_duplicate_filter))
    {
        status = BTM_NO_RESOURCES;
    }
    else
    {
    btsnd_hcic_ble_set_scan_enable(BTM_BLE_SCAN_ENABLE, p_inq->scan_duplicate_filter);

    if (p_inq->scan_type == BTM_BLE_SCAN_MODE_ACTI)
        btm_ble_set_topology_mask(BTM_BLE_STATE_ACTIVE_SCAN_BIT);
    else
        btm_ble_set_topology_mask(BTM_BLE_STATE_PASSIVE_SCAN_BIT);
    }
    return status;

    return BTM_CMD_STARTED;
}

/*******************************************************************************
@@ -2649,7 +2612,6 @@ static bool btm_ble_adv_states_operation(BTM_TOPOLOGY_FUNC_PTR *p_handler, ui
tBTM_STATUS btm_ble_start_adv(void)
{
    tBTM_BLE_INQ_CB *p_cb = &btm_cb.ble_ctr_cb.inq_var;
    tBTM_STATUS     rt = BTM_NO_RESOURCES;

    if (!btm_ble_adv_states_operation (btm_ble_topology_check, p_cb->evt_type))
        return BTM_WRONG_MODE;
@@ -2667,18 +2629,10 @@ tBTM_STATUS btm_ble_start_adv(void)
        btm_cb.ble_ctr_cb.wl_state |= BTM_BLE_WL_ADV;
    }

    if (btsnd_hcic_ble_set_adv_enable (BTM_BLE_ADV_ENABLE))
    {
    btsnd_hcic_ble_set_adv_enable (BTM_BLE_ADV_ENABLE);
    p_cb->adv_mode = BTM_BLE_ADV_ENABLE;
    btm_ble_adv_states_operation(btm_ble_set_topology_mask, p_cb->evt_type);
         rt = BTM_SUCCESS;
    }
    else
    {
        p_cb->adv_mode = BTM_BLE_ADV_DISABLE;
        btm_cb.ble_ctr_cb.wl_state &= ~BTM_BLE_WL_ADV;
    }
    return rt;
    return BTM_SUCCESS;
}

/*******************************************************************************
@@ -2693,12 +2647,11 @@ tBTM_STATUS btm_ble_start_adv(void)
tBTM_STATUS btm_ble_stop_adv(void)
{
    tBTM_BLE_INQ_CB *p_cb = &btm_cb.ble_ctr_cb.inq_var;
    tBTM_STATUS rt = BTM_SUCCESS;

    if (p_cb->adv_mode == BTM_BLE_ADV_ENABLE)
    {
        if (btsnd_hcic_ble_set_adv_enable (BTM_BLE_ADV_DISABLE))
        {
        btsnd_hcic_ble_set_adv_enable (BTM_BLE_ADV_DISABLE);

        p_cb->fast_adv_on = false;
        p_cb->adv_mode = BTM_BLE_ADV_DISABLE;
        btm_cb.ble_ctr_cb.wl_state &= ~BTM_BLE_WL_ADV;
@@ -2706,10 +2659,7 @@ tBTM_STATUS btm_ble_stop_adv(void)
        /* clear all adv states */
        btm_ble_clear_topology_mask (BTM_BLE_STATE_ALL_ADV_MASK);
    }
        else
            rt = BTM_NO_RESOURCES;
    }
    return rt;
    return BTM_SUCCESS;
}

static void btm_ble_fast_adv_timer_timeout(UNUSED_ATTR void *data)
Loading