Merge branch 'bugfix/btdm_a2dp_assert_warn_after_connected' into 'master'
component/bt: Fix bug a2dp assert warn after connected See merge request idf/esp-idf!2470
This commit is contained in:
commit
cb9483e844
2 changed files with 15 additions and 13 deletions
|
@ -815,7 +815,7 @@ void bta_av_role_res (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
p_scb->wait &= ~BTA_AV_WAIT_ROLE_SW_BITS;
|
||||
if (p_data->role_res.hci_status != HCI_SUCCESS) {
|
||||
p_scb->role &= ~BTA_AV_ROLE_START_INT;
|
||||
bta_sys_idle(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
bta_sys_idle(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
/* start failed because of role switch. */
|
||||
start.chnl = p_scb->chnl;
|
||||
start.status = BTA_AV_FAIL_ROLE;
|
||||
|
@ -956,7 +956,7 @@ void bta_av_do_disc_a2d (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
p_scb->sec_mask = p_data->api_open.sec_mask;
|
||||
p_scb->use_rc = p_data->api_open.use_rc;
|
||||
|
||||
bta_sys_app_open(BTA_ID_AV, p_scb->app_id, p_scb->peer_addr);
|
||||
bta_sys_app_open(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
/* allocate discovery database */
|
||||
if (p_scb->p_disc_db == NULL) {
|
||||
|
@ -1330,7 +1330,7 @@ void bta_av_str_opened (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
L2CA_SetTxPriority(p_scb->l2c_cid, L2CAP_CHNL_PRIORITY_MEDIUM);
|
||||
L2CA_SetChnlFlushability (p_scb->l2c_cid, TRUE);
|
||||
|
||||
bta_sys_conn_open(BTA_ID_AV, p_scb->app_id, p_scb->peer_addr);
|
||||
bta_sys_conn_open(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), p_scb->app_id, p_scb->peer_addr);
|
||||
memset(&p_scb->q_info, 0, sizeof(tBTA_AV_Q_INFO));
|
||||
|
||||
p_scb->l2c_bufs = 0;
|
||||
|
@ -1933,8 +1933,7 @@ void bta_av_do_start (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
|
||||
if ((p_scb->started == FALSE) && ((p_scb->role & BTA_AV_ROLE_START_INT) == 0)) {
|
||||
p_scb->role |= BTA_AV_ROLE_START_INT;
|
||||
bta_sys_busy(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
|
||||
bta_sys_busy(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
AVDT_StartReq(&p_scb->avdt_handle, 1);
|
||||
} else if (p_scb->started) {
|
||||
p_scb->role |= BTA_AV_ROLE_START_INT;
|
||||
|
@ -1969,7 +1968,7 @@ void bta_av_str_stopped (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
APPL_TRACE_ERROR("bta_av_str_stopped:audio_open_cnt=%d, p_data %p",
|
||||
bta_av_cb.audio_open_cnt, p_data);
|
||||
|
||||
bta_sys_idle(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
bta_sys_idle(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
if ((bta_av_cb.features & BTA_AV_FEAT_MASTER) == 0 || bta_av_cb.audio_open_cnt == 1) {
|
||||
policy |= HCI_ENABLE_MASTER_SLAVE_SWITCH;
|
||||
}
|
||||
|
@ -2239,7 +2238,7 @@ void bta_av_start_ok (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
if (p_data && (p_data->hdr.offset != BTA_AV_RS_NONE)) {
|
||||
p_scb->wait &= ~BTA_AV_WAIT_ROLE_SW_BITS;
|
||||
if (p_data->hdr.offset == BTA_AV_RS_FAIL) {
|
||||
bta_sys_idle(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
bta_sys_idle(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
start.chnl = p_scb->chnl;
|
||||
start.status = BTA_AV_FAIL_ROLE;
|
||||
start.hndl = p_scb->hndl;
|
||||
|
@ -2275,9 +2274,9 @@ void bta_av_start_ok (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
}
|
||||
|
||||
/* tell role manager to check M/S role */
|
||||
bta_sys_conn_open(BTA_ID_AV, p_scb->app_id, p_scb->peer_addr);
|
||||
bta_sys_conn_open(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
bta_sys_busy(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
bta_sys_busy(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
|
||||
if (p_scb->media_type == AVDT_MEDIA_AUDIO) {
|
||||
/* in normal logic, conns should be bta_av_cb.audio_count - 1,
|
||||
|
@ -2364,7 +2363,7 @@ void bta_av_start_failed (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
UNUSED(p_data);
|
||||
|
||||
if (p_scb->started == FALSE && p_scb->co_started == FALSE) {
|
||||
bta_sys_idle(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
bta_sys_idle(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
notify_start_failed(p_scb);
|
||||
}
|
||||
|
||||
|
@ -2413,7 +2412,8 @@ void bta_av_str_closed (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
event = BTA_AV_OPEN_EVT;
|
||||
p_scb->open_status = BTA_AV_SUCCESS;
|
||||
|
||||
bta_sys_conn_close(BTA_ID_AV, p_scb->app_id, p_scb->peer_addr);
|
||||
bta_sys_conn_close(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
bta_av_cleanup(p_scb, p_data);
|
||||
(*bta_av_cb.p_cback)(event, &data);
|
||||
} else {
|
||||
|
@ -2432,7 +2432,8 @@ void bta_av_str_closed (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
data.close.disc_rsn = p_scb->disc_rsn;
|
||||
event = BTA_AV_CLOSE_EVT;
|
||||
|
||||
bta_sys_conn_close(BTA_ID_AV, p_scb->app_id, p_scb->peer_addr);
|
||||
bta_sys_conn_close(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
bta_av_cleanup(p_scb, p_data);
|
||||
(*bta_av_cb.p_cback)(event, &data);
|
||||
}
|
||||
|
@ -2506,7 +2507,7 @@ void bta_av_suspend_cfm (tBTA_AV_SCB *p_scb, tBTA_AV_DATA *p_data)
|
|||
p_scb->cong = FALSE;
|
||||
}
|
||||
|
||||
bta_sys_idle(BTA_ID_AV, bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
bta_sys_idle(TSEP_TO_SYS_ID(p_scb->seps[p_scb->sep_idx].tsep), bta_av_cb.audio_open_cnt, p_scb->peer_addr);
|
||||
if ((bta_av_cb.features & BTA_AV_FEAT_MASTER) == 0 || bta_av_cb.audio_open_cnt == 1) {
|
||||
policy |= HCI_ENABLE_MASTER_SLAVE_SWITCH;
|
||||
}
|
||||
|
|
|
@ -153,6 +153,7 @@ enum {
|
|||
#define BTA_AV_MULTI_AV_SUPPORTED 0x01
|
||||
#define BTA_AV_MULTI_AV_IN_USE 0x02
|
||||
|
||||
#define TSEP_TO_SYS_ID(x) ((x) == AVDT_TSEP_SRC ? BTA_ID_AV : BTA_ID_AVK)
|
||||
|
||||
/*****************************************************************************
|
||||
** Data types
|
||||
|
|
Loading…
Reference in a new issue