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

Commit bb01b674 authored by Sungsoo Lim's avatar Sungsoo Lim
Browse files

Use CSVD D1 eSCO config param for SCO connection

According to HFP v1.8 5.7.3 CVSD coding, if EV3 is not supported or
for SCO configuration parameters CVSD_D0 or D1 should be used.
Use CVSD D1 for this case since D0 is not defined yet in Android.

Bug: 208481400
Tag: #refactor
Test: atest CtsBluetoothTestCases net_test_stack_btm
Change-Id: I881ce1f71db3002e01a71d1aadfe904851f3640b
parent ff5712b6
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -34,12 +34,16 @@
#include "main/shim/dumpsys.h"
#include "main/shim/dumpsys.h"
#include "osi/include/log.h"
#include "osi/include/log.h"
#include "osi/include/osi.h"  // UNUSED_ATTR
#include "osi/include/osi.h"  // UNUSED_ATTR
#include "stack/btm/btm_int_types.h"
#include "stack/btm/btm_sco.h"
#include "stack/btm/btm_sco.h"
#include "stack/btm/btm_sco_hfp_hal.h"
#include "stack/btm/btm_sco_hfp_hal.h"
#include "stack/include/acl_api.h"
#include "stack/include/btm_api.h"
#include "stack/include/btm_api.h"
#include "stack/include/btu.h"  // do_in_main_thread
#include "stack/include/btu.h"  // do_in_main_thread
#include "types/raw_address.h"
#include "types/raw_address.h"


extern tBTM_CB btm_cb;

/* Codec negotiation timeout */
/* Codec negotiation timeout */
#ifndef BTA_AG_CODEC_NEGOTIATION_TIMEOUT_MS
#ifndef BTA_AG_CODEC_NEGOTIATION_TIMEOUT_MS
#define BTA_AG_CODEC_NEGOTIATION_TIMEOUT_MS (3 * 1000) /* 3 seconds */
#define BTA_AG_CODEC_NEGOTIATION_TIMEOUT_MS (3 * 1000) /* 3 seconds */
@@ -512,6 +516,15 @@ static void bta_ag_create_pending_sco(tBTA_AG_SCB* p_scb, bool is_local) {
      params = esco_parameters_for_codec(ESCO_CODEC_CVSD_S3, offload);
      params = esco_parameters_for_codec(ESCO_CODEC_CVSD_S3, offload);
    }
    }


    // HFP v1.8 5.7.3 CVSD coding
    tSCO_CONN* p_sco = NULL;
    if (p_scb->sco_idx < BTM_MAX_SCO_LINKS)
      p_sco = &btm_cb.sco_cb.sco_db[p_scb->sco_idx];
    if (p_sco && (p_sco->esco.data.link_type == BTM_LINK_TYPE_SCO ||
                  !sco_peer_supports_esco_ev3(p_sco->esco.data.bd_addr))) {
      params = esco_parameters_for_codec(SCO_CODEC_CVSD_D1, offload);
    }

    BTM_EScoConnRsp(p_scb->sco_idx, HCI_SUCCESS, &params);
    BTM_EScoConnRsp(p_scb->sco_idx, HCI_SUCCESS, &params);
    APPL_TRACE_DEBUG("%s: listening for SCO connection", __func__);
    APPL_TRACE_DEBUG("%s: listening for SCO connection", __func__);
  }
  }
+0 −4
Original line number Original line Diff line number Diff line
@@ -143,10 +143,6 @@ static void btm_esco_conn_rsp(uint16_t sco_inx, uint8_t hci_status,
    /* If parameters not specified use the default */
    /* If parameters not specified use the default */
    if (p_parms) {
    if (p_parms) {
      *p_setup = *p_parms;
      *p_setup = *p_parms;
    } else if (p_sco->esco.data.link_type == BTM_LINK_TYPE_SCO ||
               !sco_peer_supports_esco_ev3(bda)) {
      *p_setup = esco_parameters_for_codec(
          SCO_CODEC_CVSD_D1, hfp_hal_interface::get_offload_enabled());
    } else {
    } else {
      /* Use the last setup passed thru BTM_SetEscoMode (or defaults) */
      /* Use the last setup passed thru BTM_SetEscoMode (or defaults) */
      *p_setup = btm_cb.sco_cb.def_esco_parms;
      *p_setup = btm_cb.sco_cb.def_esco_parms;