summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-01-19 00:48:00 -0800
committerSteve Kondik <steve@cyngn.com>2016-01-19 00:48:00 -0800
commitd4cd18182d0868a1018436f8e917f5580abdc1fa (patch)
tree4fa76ea708ed02f4b31f0974b2a082b85a348a91
parent80a7a7dc3125e463d06e7215feb3f5a27c4f3352 (diff)
parent1707433a801bc48855fc66f9c9914bd99f94ad3c (diff)
downloadandroid_system_bt-d4cd18182d0868a1018436f8e917f5580abdc1fa.tar.gz
android_system_bt-d4cd18182d0868a1018436f8e917f5580abdc1fa.tar.bz2
android_system_bt-d4cd18182d0868a1018436f8e917f5580abdc1fa.zip
Merge branch 'LA.BF.1.1.3_rb1.8' of git://codeaurora.org/platform/system/bt into cm-13.0
-rw-r--r--btcore/src/module.c5
-rw-r--r--btif/src/btif_av.c2
-rw-r--r--btif/src/btif_media_task.c41
-rw-r--r--stack/btm/btm_acl.c4
-rw-r--r--stack/sdp/sdp_utils.c5
5 files changed, 34 insertions, 23 deletions
diff --git a/btcore/src/module.c b/btcore/src/module.c
index 745a36893..700301d77 100644
--- a/btcore/src/module.c
+++ b/btcore/src/module.c
@@ -33,7 +33,8 @@
typedef enum {
MODULE_STATE_NONE = 0,
MODULE_STATE_INITIALIZED = 1,
- MODULE_STATE_STARTED = 2
+ MODULE_STATE_STARTED = 2,
+ MODULE_STATE_STARTUP_ERROR = 3
} module_state_t;
static const size_t number_of_metadata_buckets = 42;
@@ -97,6 +98,7 @@ bool module_start_up(const module_t *module) {
if (!call_lifecycle_function(module->start_up)) {
LOG_ERROR("%s failed to start up \"%s\"", __func__, module->name);
+ set_module_state(module, MODULE_STATE_STARTUP_ERROR);
return false;
}
@@ -108,7 +110,6 @@ void module_shut_down(const module_t *module) {
assert(metadata != NULL);
assert(module != NULL);
module_state_t state = get_module_state(module);
- assert(state <= MODULE_STATE_STARTED);
// Only something to do if the module was actually started
if (state < MODULE_STATE_STARTED)
diff --git a/btif/src/btif_av.c b/btif/src/btif_av.c
index 5b8a1da9e..c1643c955 100644
--- a/btif/src/btif_av.c
+++ b/btif/src/btif_av.c
@@ -2663,8 +2663,10 @@ BOOLEAN btif_av_stream_started_ready(void)
void btif_dispatch_sm_event(btif_av_sm_event_t event, void *p_data, int len)
{
/* Switch to BTIF context */
+ BTIF_TRACE_IMP("%s: event: %d, len: %d", __FUNCTION__, event, len);
btif_transfer_context(btif_av_handle_event, event,
(char*)p_data, len, NULL);
+ BTIF_TRACE_IMP("%s: event %d sent", __FUNCTION__, event);
}
/*******************************************************************************
diff --git a/btif/src/btif_media_task.c b/btif/src/btif_media_task.c
index 07aec5bd3..5596e005b 100644
--- a/btif/src/btif_media_task.c
+++ b/btif/src/btif_media_task.c
@@ -471,7 +471,7 @@ static const char* dump_a2dp_ctrl_event(UINT8 event)
static void btif_audiopath_detached(void)
{
- APPL_TRACE_EVENT("## AUDIO PATH DETACHED ##");
+ APPL_TRACE_IMP("## AUDIO PATH DETACHED ##");
/* send stop request only if we are actively streaming and haven't received
a stop request. Potentially audioflinger detached abnormally */
@@ -486,7 +486,7 @@ static void a2dp_cmd_acknowledge(int status)
{
UINT8 ack = status;
- APPL_TRACE_EVENT("## a2dp ack : %s, status %d ##",
+ APPL_TRACE_IMP("## a2dp ack : %s, status %d ##",
dump_a2dp_ctrl_event(btif_media_cb.a2dp_cmd_pending), status);
/* sanity check */
@@ -513,7 +513,7 @@ static void btif_recv_ctrl_data(void)
/* detach on ctrl channel means audioflinger process was terminated */
if (n == 0)
{
- APPL_TRACE_EVENT("CTRL CH DETACHED");
+ APPL_TRACE_IMP("CTRL CH DETACHED");
UIPC_Close(UIPC_CH_ID_AV_CTRL);
/* we can operate only on datachannel, if af client wants to
do send additional commands the ctrl channel would be reestablished */
@@ -521,7 +521,7 @@ static void btif_recv_ctrl_data(void)
return;
}
- APPL_TRACE_DEBUG("a2dp-ctrl-cmd : %s", dump_a2dp_ctrl_event(cmd));
+ APPL_TRACE_IMP("a2dp-ctrl-cmd : %s", dump_a2dp_ctrl_event(cmd));
btif_media_cb.a2dp_cmd_pending = cmd;
@@ -657,14 +657,14 @@ static void btif_recv_ctrl_data(void)
a2dp_cmd_acknowledge(A2DP_CTRL_ACK_FAILURE);
break;
}
- APPL_TRACE_DEBUG("a2dp-ctrl-cmd : %s DONE", dump_a2dp_ctrl_event(cmd));
+ APPL_TRACE_IMP("a2dp-ctrl-cmd : %s DONE", dump_a2dp_ctrl_event(cmd));
}
static void btif_a2dp_ctrl_cb(tUIPC_CH_ID ch_id, tUIPC_EVENT event)
{
UNUSED(ch_id);
- APPL_TRACE_DEBUG("A2DP-CTRL-CHANNEL EVENT %s", dump_uipc_event(event));
+ APPL_TRACE_IMP("A2DP-CTRL-CHANNEL EVENT %s", dump_uipc_event(event));
switch(event)
{
@@ -850,7 +850,7 @@ bool btif_a2dp_start_media_task(void)
return false;
}
- APPL_TRACE_EVENT("## A2DP START MEDIA THREAD ##");
+ APPL_TRACE_IMP("## A2DP START MEDIA THREAD ##");
btif_media_cmd_msg_queue = fixed_queue_new(SIZE_MAX);
@@ -866,7 +866,7 @@ bool btif_a2dp_start_media_task(void)
thread_post(worker_thread, btif_media_thread_init, NULL);
- APPL_TRACE_EVENT("## A2DP MEDIA THREAD STARTED ##");
+ APPL_TRACE_IMP("## A2DP MEDIA THREAD STARTED ##");
return true;
@@ -877,7 +877,7 @@ bool btif_a2dp_start_media_task(void)
void btif_a2dp_stop_media_task(void)
{
- APPL_TRACE_EVENT("## A2DP STOP MEDIA THREAD ##");
+ APPL_TRACE_IMP("## A2DP STOP MEDIA THREAD ##");
// Stop timer
alarm_free(btif_media_cb.media_alarm);
@@ -973,7 +973,7 @@ tBTIF_STATUS btif_a2dp_setup_codec(void)
void btif_a2dp_on_idle(void)
{
- APPL_TRACE_EVENT("## ON A2DP IDLE ##");
+ APPL_TRACE_IMP("## ON A2DP IDLE ##");
if (btif_media_cb.peer_sep == AVDT_TSEP_SNK)
{
/* Make sure media task is stopped */
@@ -1011,7 +1011,7 @@ void btif_a2dp_on_idle(void)
void btif_a2dp_on_open(void)
{
- APPL_TRACE_EVENT("## ON A2DP OPEN ##");
+ APPL_TRACE_IMP("## ON A2DP OPEN ##");
#ifndef BTA_AV_SPLIT_A2DP_ENABLED
/* always use callback to notify socket events */
@@ -1089,7 +1089,7 @@ BOOLEAN btif_a2dp_on_started(tBTA_AV_START *p_av, BOOLEAN pending_start)
{
BOOLEAN ack = FALSE;
- APPL_TRACE_EVENT("## ON A2DP STARTED ##");
+ APPL_TRACE_IMP("## ON A2DP STARTED ##");
if (p_av == NULL)
{
@@ -1162,7 +1162,7 @@ BOOLEAN btif_a2dp_on_started(tBTA_AV_START *p_av, BOOLEAN pending_start)
void btif_a2dp_ack_fail(void)
{
- APPL_TRACE_EVENT("## A2DP_CTRL_ACK_FAILURE ##");
+ APPL_TRACE_IMP("## A2DP_CTRL_ACK_FAILURE ##");
a2dp_cmd_acknowledge(A2DP_CTRL_ACK_FAILURE);
}
@@ -1178,7 +1178,7 @@ void btif_a2dp_ack_fail(void)
void btif_a2dp_on_stopped(tBTA_AV_SUSPEND *p_av)
{
- APPL_TRACE_EVENT("## ON A2DP STOPPED ##");
+ APPL_TRACE_IMP("## ON A2DP STOPPED ##");
if (btif_media_cb.peer_sep == AVDT_TSEP_SRC) /* Handling for A2DP SINK cases*/
{
btif_media_cb.rx_flush = TRUE;
@@ -1228,7 +1228,7 @@ void btif_a2dp_on_stopped(tBTA_AV_SUSPEND *p_av)
void btif_a2dp_on_suspended(tBTA_AV_SUSPEND *p_av)
{
- APPL_TRACE_EVENT("## ON A2DP SUSPENDED ##");
+ APPL_TRACE_IMP("## ON A2DP SUSPENDED ##");
if (btif_media_cb.peer_sep == AVDT_TSEP_SRC)
{
btif_media_cb.rx_flush = TRUE;
@@ -1397,6 +1397,7 @@ static void btif_media_task_aa_handle_uipc_rx_rdy(void)
#endif
static void btif_media_thread_init(UNUSED_ATTR void *context) {
+ APPL_TRACE_IMP(" btif_media_thread_init");
memset(&btif_media_cb, 0, sizeof(btif_media_cb));
UIPC_Init(NULL);
@@ -1409,6 +1410,7 @@ static void btif_media_thread_init(UNUSED_ATTR void *context) {
}
static void btif_media_thread_cleanup(UNUSED_ATTR void *context) {
+ APPL_TRACE_IMP(" btif_media_thread_cleanup");
/* make sure no channels are restarted while shutting down */
media_task_running = MEDIA_TASK_STATE_SHUTTING_DOWN;
@@ -1463,7 +1465,7 @@ static void btif_media_flush_q(BUFFER_Q *p_q)
static void btif_media_thread_handle_cmd(fixed_queue_t *queue, UNUSED_ATTR void *context)
{
BT_HDR *p_msg = (BT_HDR *)fixed_queue_dequeue(queue);
- LOG_VERBOSE("btif_media_thread_handle_cmd : %d %s", p_msg->event,
+ APPL_TRACE_IMP("btif_media_thread_handle_cmd : %d %s", p_msg->event,
dump_media_event(p_msg->event));
switch (p_msg->event)
@@ -1565,7 +1567,7 @@ static void btif_media_thread_handle_cmd(fixed_queue_t *queue, UNUSED_ATTR void
APPL_TRACE_ERROR("ERROR in %s unknown event %d", __func__, p_msg->event);
}
GKI_freebuf(p_msg);
- LOG_VERBOSE("%s: %s DONE", __func__, dump_media_event(p_msg->event));
+ APPL_TRACE_IMP("%s: %s DONE", __func__, dump_media_event(p_msg->event));
}
#if (BTA_AV_SINK_INCLUDED == TRUE)
@@ -2486,7 +2488,7 @@ static void btif_media_task_alarm_cb(UNUSED_ATTR void *context) {
*******************************************************************************/
static void btif_media_task_aa_start_tx(void)
{
- APPL_TRACE_DEBUG("btif_media_task_aa_start_tx is timer %d, feeding mode %d",
+ APPL_TRACE_IMP("btif_media_task_aa_start_tx is timer %d, feeding mode %d",
btif_media_cb.is_tx_timer, btif_media_cb.feeding_mode);
/* Use a timer to poll the UIPC, get rid of the UIPC call back */
@@ -2526,8 +2528,9 @@ static void btif_media_task_aa_start_tx(void)
static void btif_media_task_aa_stop_tx(void)
{
#ifndef BTA_AV_SPLIT_A2DP_ENABLED
+ APPL_TRACE_IMP("%s is_tx_timer: %d", __func__, btif_media_cb.is_tx_timer);
+
const bool send_ack = (btif_media_cb.is_tx_timer != FALSE);
- APPL_TRACE_DEBUG("%s is_tx_timer: %d", __func__, btif_media_cb.is_tx_timer);
/* Stop the timer first */
alarm_free(btif_media_cb.media_alarm);
diff --git a/stack/btm/btm_acl.c b/stack/btm/btm_acl.c
index 5fe225efd..7b7a64bab 100644
--- a/stack/btm/btm_acl.c
+++ b/stack/btm/btm_acl.c
@@ -1026,8 +1026,8 @@ void btm_read_remote_version_complete (UINT8 *p)
p_acl_cb->remote_addr[3], p_acl_cb->remote_addr[4], p_acl_cb->remote_addr[5]);
BTM_TRACE_WARNING ("btm_read_remote_version_complete lmp_version %d manufacturer %d lmp_subversion %d",
p_acl_cb->lmp_version,p_acl_cb->manufacturer, p_acl_cb->lmp_subversion);
- btm_read_remote_features (p_acl_cb->hci_handle);
- break;
+ if (p_acl_cb->transport == BT_TRANSPORT_BR_EDR)
+ btm_read_remote_features (p_acl_cb->hci_handle);
}
#if BLE_INCLUDED == TRUE
diff --git a/stack/sdp/sdp_utils.c b/stack/sdp/sdp_utils.c
index 5c8d73312..d9b1ea7ef 100644
--- a/stack/sdp/sdp_utils.c
+++ b/stack/sdp/sdp_utils.c
@@ -1027,6 +1027,11 @@ UINT8 *sdpu_build_partial_attrib_entry (UINT8 *p_out, tSDP_ATTRIBUTE *p_attr, UI
sdpu_build_attrib_entry(p_tmp_attr, p_attr);
attr_len = sdpu_get_attrib_entry_len(p_attr);
+ if (len > SDP_MAX_ATTR_LEN)
+ {
+ SDP_TRACE_ERROR("sdpu_build_partial_attrib_entry len %d exceeds SDP_MAX_ATTR_LEN",len);
+ len = SDP_MAX_ATTR_LEN;
+ }
len_to_copy = ((attr_len - *offset) < len) ? (attr_len - *offset): len;
if(p_out)
{