b82a27ed327739ca5de7924cc577f5bfb8b8060b |
|
22-Jul-2016 |
Ayan Ghosh <abghosh@codeaurora.org> |
Proper handling of AV connection collision Use case: 1. Pair to Remote 2. Turn OFF/ON BT on DUT 3. After DUT's BT is turned ON, Remote would reconnect to DUT Failure: Bluetooth settings UI continues to display Connecting when BT was Turned OFF and ON. Root cause: - This is a connection collision case where remote is not responding to DUT initiated SDP attribute fetch request for AV. AV holds outgoing connection for sometime and meanwhile remote starts AV connection from its end. Then DUT disconnects the SDP channel after a second without waiting to fetch requested info, and this confuses DUT's AV state machine. The outgoing connection could not proceed as incoming AV L2CAP connects, because DUT's AV state machine is not equipped with handling this scenario. On incoming connection timer expiry, it does not start AV media channel as it finds AV Open has not been done from upper layer after incoming L2CAP got connected. - When the incoming path 2s timer expires, the DUT checks whether Open has been called after incoming state is set. This is not the case here, because Open was triggered earlier as as part of the outgoing connection. As a result, A2DP cannot connect at all. Fix: - Properly set collision flags for handling AV connection collision. - Update BTA AV handle even when BTIF AV state machine is yet to be built. Bug: 30362987 Change-Id: I02a3adb62479b0f762bc792a5727d06e11eaaa52 (cherry picked from commit db1e3a5fbb41cd1faf572c5f89ec9212c5ff2986)
/system/bt/bta/av/bta_av_aact.c
|
28dcc298f97ad10258408f2609cc7b9119ad32f6 |
|
26-Mar-2016 |
Andre Eisenbach <eisenbach@google.com> |
Remove unused p_db for A2DP service discovery This fixes a crash (SIGSEGV) when re-connecting A2DP devices where the SDP pointer was incorrectly reset to 0. Bug: 27852645 Change-Id: Ie40b7e57fc117c6fe7a42020600745ef348b503c
/system/bt/bta/av/bta_av_aact.c
|
ff813a67d60ce1c9b5f3ea680b281bf642e69fe5 |
|
03-Mar-2016 |
Ayan Ghosh <abghosh@codeaurora.org> |
Allocate buffer for AV SDP in Stack Remove buffer allocation in BTA while going for SDP before triggering A2DP connection. This strategy is followed to address memory corruption issues due to freeing of BTA buffer before SDP RSP call back is triggered and access the freed buffer from there, leads to crash when running Codemonicom tests. The change allocates and frees buffer in stack. Bug: 27852645 Change-Id: If6d60d2aa60d19ce5120dd38c2f365d70943db81
/system/bt/bta/av/bta_av_aact.c
|
b5b7552826d1fb17eb98956e7b60e3b2288709b1 |
|
11-Dec-2014 |
Ayan Ghosh <abghosh@codeaurora.org> |
Do not initiate SDP for incoming AVDTP connection There are few instances when remote initiates L2CAP channel for AVDTP signaling but keeps quite after that, and later on timeout DUT goes for rest of the signalling procedure but does sdp prior to the same.Few peer devices deletes a2dp sink sdp record when there is an ongoing connection, as a result sdp request fails and DUT fails to proceed with signalling procedure and connection setup fails. This patch makes sure that DUT does not go for redundant sdp request for AVDTP, provided remote has already established L2cap connection for the same. SDP is done explicitly only incase of outgoing AV connection. This issue is seen with Nokia Es headset. Bug: 27852645 Change-Id: Id44368687d5b3f97bf0258f8d4ff75f185db23af
/system/bt/bta/av/bta_av_aact.c
|
271c217a2c82b92a4d52dcace40bedea227a6c24 |
|
26-Dec-2014 |
Ayan Ghosh <abghosh@codeaurora.org> |
Limit Max Bitpool value to SPEC recommended one Preferred bipool for 44.1 KHz sampling rate for SBC codec is considered as 53. Hence limit Max Bitpool value to 53 in setconfig request to have it same as the one DUT sets in getConfig response and in encoding pcm packets. few BMW series of CKs does not connect unless DUT configures max bitpool in setconfig request to 53. Bug: 27852645 Change-Id: Ie7ca504c23f6bae8fda997cdeb3e0ff0733defb0
/system/bt/bta/av/bta_av_aact.c
|
2998946db9b820806d4a3e6decf1d01f090a8031 |
|
24-Feb-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Move properties get/set code to osi Currently we use Android-specific property_get and property_set through the code. This patch adds osi_property_get and osi_property_set that is encapsulating all external dependencies. This is step further for errorless compilation on linux. Bug: 27324453 Change-Id: I97c34344617a5855b683328bcd196a21a2fae6f9
/system/bt/bta/av/bta_av_aact.c
|
12265e39b511f28425236b0dc97c78e7d837304b |
|
13-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Fix C/C++ compiler generated warnings * Remove unused functions: -Wno-unused-function * Fix logical operations that are missing parentheses: -Wno-logical-not-parentheses, -Wno-parentheses * Add missing braces in initializers: -Wno-missing-braces * Remove unused variables: -Wno-unused-variable * Fix printf()-like formatting issues: -Wno-format * Avoid using unitialized variables: -Wno-maybe-uninitialized, -Wno-uninitialized * Fix a bug inside bta_gattc_get_gatt_db_impl() when the processed GATT DB attribute type is unknown. * Fix warnings about missing field initializers: -Wno-missing-field-initializers * Re-implement macro COMPILE_ASSERT(COND) to fix a compilation warning: -Wno-non-literal-null-conversion * Fix sign mismatch comparison warnings: -Wno-sign-compare * Fix warnings related to enum conversion: -Wno-enum-conversion * Fix warnings related to incompatible pointer types: -Wno-incompatible-pointer-types * Fix warnings related to enum conversion: -Wno-enum-conversion Bug: 26879229 Change-Id: I522931fe156aeab23ae841051a9e25ceab00b1c2
/system/bt/bta/av/bta_av_aact.c
|
5fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cd |
|
06-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Removed checks for NULL returns after osi_calloc() / osi_malloc() Removed explicit checks for NULL pointer returns after calls to osi_calloc() and osi_malloc(), because those are not needed. If the memory allocation fails, osi_calloc() and osi_malloc() will trigger an assert. Bug: 27048759 Change-Id: I2791eb2f69c08f991f8fcdef10e101a41568cd95
/system/bt/bta/av/bta_av_aact.c
|
abd70abb5e42c9431df94fe9d2c4a78a0d8d9af9 |
|
05-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Replaced osi_getbuf()/osi_freebuf() with osi_malloc()/osi_free() Removed the alternative buffer allocation osi_getbuf() / osi_freebuf() and use instead osi_malloc() / osi_free(). Correspondingly, replaced usage of osi_freebuf_and_reset() with osi_free_and_reset(). Bug: 24914560 Change-Id: I7a9599ba7fa900321f087da684428133eb0ddd6b
/system/bt/bta/av/bta_av_aact.c
|
20524d393e8b3bea4c573f7980cd843500b0e6a4 |
|
03-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Refactor usage of osi_free() and osi_freebuf() * Allow to call osi_freebuf(ptr) on NULL pointers. This simplifies the code: a notable number of "if (foo != NULL)" checks are removed. * Add new function osi_free_and_reset(p_ptr) that frees the buffer, and explicitly resets the pointer to NULL. This prevents unintended usage of free memory. * Add corresponding function osi_freebuf_and_reset(p_ptr) * Minor cleanup around usages of osi_free() and osi_freebuf() Also: * Removed unused function btif_gattc_cleanup() * Replaced usage of the following functions with osi_freebuf_and_reset() - mca_free_buf() - utl_freebuf() - btif_hl_free_buf() * Replaced usage of rc_supported_event_free() with osi_freebuf() * Replaced usage of btif_hl_get_buf() with osi_getbuf() * Eliminate some of the osi_get_buf_size() calls Bug: 22948224 Change-Id: Ife860658b26274da6f228d7353cb0f1531587337
/system/bt/bta/av/bta_av_aact.c
|
78bcff79e1b1f0efce436b33bdd6da88745bfc8a |
|
05-Dec-2015 |
Pavlin Radoslavov <pavlin@google.com> |
Refactor the Bluetooth timers * Updated the alarm API: - Existing API alarm_new() is modified to take an alarm name as an argument. - New API alarm_new_periodic() is used to create a periodic alarm. - Added new API alarm_is_scheduled() to test whether an alarm is scheduled. - Existing API alarm_set_periodic() is removed: a periodic alarm is created by alarm_new_periodic(). - Added new API alarm_set_on_queue() to set an alarm whose callback is executed on a specific queue. - Added new API alarm_register_processing_queue() and alarm_unregister_processing_queue() to register/unregister a queue and the corresponding thread for alarm processing. - Added corresponding unit tests. * Updated the alarm internals: - Added alarm_info_t for collecting alarm-related information and statistics. - Collect and store alarm-related statistics into alarm_info_t per alarm. - Include the alarm-related statistics and info into the native dumpsys output for Bluetooth. - Once an alarm expires, the alarm execution is scheduled for processing on another internal alarm-specific thread, not on the thread that is maintaining the alarms. - Implemented callback execution ordering guarantee among timers on the same thread with exactly same timeout values. * Refactor some of the usage of alarm_set() and simplify the code by using alarm_set_on_queue() instead. * Removed the non_repeating timers wrapper, and use directly the alarm mechanism / API. * Refactored all timer_entry_t timers and replaced them with alarm_t timers: - Replaced the btu_start_timer() / btu_stop_timer() / btu_start_quick_timer() / btu_stop_quick_timer() / btu_oneshot_alarm() mechanism with alarm_set_on_queue() and alarm_cancel() - Removed the whole mechanism around the BTU_TTYPE_* timers. * Fixed a bug when processing the GATT indication confirmation timer expiration (timer tGATT_TCB.conf_timer: b/26610829). * Renamed and/or split misc. timeout functions, fields, and timers * Renamed time-related constants and changed the values from seconds to milliseconds * Replaced timer tAVDT_CCB.timer_entry with three mutually exclusive timers: idle_ccb_timer, ret_ccb_timer, rsp_ccb_timer The reason we are using three timers, is because in the original code function avdt_ccb_chk_timer() used the timer type in its logic: it would stop the timer only if the type is "idle". * Removed btm_ble_timeout() and replaced it with multiple timeout callback functions (per timer) * Fix the actual value of the global constant BT_1SEC_TIMEOUT and rename it to BT_1SEC_TIMEOUT_MS * Removed btu_cb and associated timers and events, because they are never used. * Removed unused timers, functions, struct and declarations that are not used / needed. Bug: 26611369 Bug: 26610829 Change-Id: I812c8c31710a5daefc58b01fcf35c353768f390f
/system/bt/bta/av/bta_av_aact.c
|
6b84f291c4edce7e4102efd8d4052a63bcb4b9dc |
|
05-May-2015 |
Anubhav Gupta <anubhavg@codeaurora.org> |
Support for A2DP Sink and Proper initialization of profiles - Register SDP and SEP (Stream End Point) for the profile whose init is called. We achieve this by making registration api aware of profile id being called. - Register A2DP Src + Avrcp Target + Avrcp Controller. We need to support Absolute Volume as well, so Avrcp Controller is required here. - Register A2DP Sink + Avrcp Controller. In this case we do not support absolute volume. Support would be added in AVRCP controller change - Adapter property is updated with profile ID for which init is called.This is required to make changes in btService for Profile initialization - Start listening for incoming AVRCP connection if we have only AVRCP Controller - Update default peer_features based on feature mask. In case of incoming AVRCP connection, SDP will be done later. In such a scenario default peer features sent to btif should be based on features-set selected during initialization. - Drop Control, Meta and Browse commands when TG is not up. - Not to call AVRCP app callbacks when mentioned service is down. - Close audio socket on suspend A2DP Sink: Support for AudioTrack - implemetation for audiotrack to take care of audio rendering - support for audio focus state in bluedroid Bluetooth: Support for Avrcp 1.3 Controller - support for SDP registration - support for sending vendor dependant commands - support for abs vol - support for receiving vendor dependant response - serialization of connection and rc_features callback Avrcp_Ctrl: handling of commands and events for AVRCP Controller - support of parsing cmd and event pdus - timeout handling Change-Id: I1e8d49b087eff6301373e1e90e8d868f15847c34
/system/bt/bta/av/bta_av_aact.c
|
47b4310e6aa9a508b47e6cd4631327c53b464440 |
|
19-May-2015 |
Abhijit Adsule <abhijit@motorola.com> |
A2DP SRC offload support bluedroid changes to support A2DP SRC offload to BT FW. add functionality to relay a2dp offload requests and responses between AudioHAL & the BT vendor library. Change-Id: Ie4e5992c48e95b0efb372a405e8537e4fd3ea071 Signed-off-by: Sridhar Vashist <svashist@motorola.com>
/system/bt/bta/av/bta_av_aact.c
|
258c2538e3b62a8cdb403f2730c45d721e5292b4 |
|
28-Sep-2015 |
Pavlin Radoslavov <pavlin@google.com> |
GKI cleanup - moved GKI buffer allocation wrappers to OSI * Moved the following GKI buffer allocation functions to OSI: - GKI_getbuf() -> osi_getbuf() - GKI_freebuf() -> osi_freebuf() - GKI_get_buf_size() -> osi_get_buf_size() For now we need the osi_getbuf() / osi_freebuf() allocation wrapper, because we need to be able to call osi_get_buf_size() on the allocated buffer. In the future those should be replaced with osi_malloc() / osi_free(). Currently, the osi_malloc() buffer size internal allocation tracker does not always track the size, hence we need the osi_getbuf() wrapper. * Replaced GKI_MAX_BUF_SIZE with BT_DEFAULT_BUFFER_SIZE * Added new file include/bt_common.h that can be usee to include few files that should be included alost everywhere (e.g. bt_target.h" NOTE: This file might be removed in the future and we should include everywhere the right set of header files. * Removed some of the GKI-related references * Removed file include/gki_target.h Change-Id: Ie87830e73143de200746d54235aa99f228a95024
/system/bt/bta/av/bta_av_aact.c
|
6a27776c488dd5ce2d29bce543ee42a12dfad60b |
|
13-Nov-2014 |
Anubhav Gupta <anubhavg@codeaurora.org> |
Property based change to qualify TC_INT_SRC_SIG_SMG_BV_23_C As Bluedroid AVDTP solution does not use ABORT command in any of the usecases hence this property based change is made to pass AVDTP ABORT mandatory TC using PTS. Affected PTS TC: TC_INT_SRC_SIG_SMG_BV_23_C. System Property to enable sending ABORT to pass the TC is: bluetooth.pts.force_a2dp_abort Bug: 21896912 Change-Id: I71bd11de07b9d8fb15a933712db25f0a93e10dd5
/system/bt/bta/av/bta_av_aact.c
|
46d706a9849dcd027d562200a0a43e6e9156aceb |
|
07-Nov-2014 |
Mallikarjuna GB <gbmalli@codeaurora.org> |
Fix issues in A2dp, Avrcp, HF and AG reported by static analysis tool - Fixes to validate Array Index Value and Null Pointer Dereference reported by static analysis tool. Change-Id: Id1492315f68378fdcfa517bd0a5cacefc8ebfddb
/system/bt/bta/av/bta_av_aact.c
|
b246a1a750c5a337faaa6033b39e78c8bdd4c2fb |
|
10-Apr-2015 |
Prerepa Viswanadham <dham@google.com> |
Merge commit '4bf68bf020c7fd1aabcdc4b5d8f5fbb8bacdec9d' into merge_work Change-Id: Ibc6d6e691b7f97611d16f96220346dfd6ffbbf52
|
15050770d16ebe2a66b01b0bec7dda7dfb8a0e02 |
|
30-Sep-2013 |
Kim Schulz <k.schulz@samsung.com> |
fixed missing {} around if scope a range of lines was supposed to be part of an if-true scope, but was not (due to missing {}) Bug: 10905622 Change-Id: I7adad37216cc78403f2d187d3404565f527d67c1
/system/bt/bta/av/bta_av_aact.c
|
e1a9e52ff59d36bd1bb5b7b3a02fafba6394edfe |
|
31-Mar-2015 |
Etan Cohen <etancohen@google.com> |
Merge commit 'f7f839985b3931682363d2ef3b7c5cae55a842ee' into merge Change-Id: Iaaec1ea0bf3009b7e32a9a60f697631a3f56e889
|
d44d6401d2c0e0309f0d28a1412c295ea9fa6d7e |
|
06-Mar-2015 |
Chris Manton <cmanton@google.com> |
Allocate a2d list properly Some other minor cosmetic improvements
/system/bt/bta/av/bta_av_aact.c
|
794f3b5f126fffc3dd1129a710187591348bbf23 |
|
01-Oct-2014 |
Chris Manton <cmanton@google.com> |
Removal of bd.[c|h] Consolidate legacy types into bt_types.h
/system/bt/bta/av/bta_av_aact.c
|
725278f12ed5f0931fb361e8e5a0ae563afc287b |
|
05-Aug-2014 |
Chris Manton <cmanton@google.com> |
Replace A2DP BUFFER_Q with a list The functions acting upon this list are all executed from action or event context; which would be the same thread.
/system/bt/bta/av/bta_av_aact.c
|
fe7216ca12f91baae733e7c93063db73121af308 |
|
06-May-2014 |
Chris Manton <cmanton@google.com> |
Enforce GKI API buffer usage Also add another API GKI_queue_length(BUFFER_Q *)
/system/bt/bta/av/bta_av_aact.c
|
104e3f238f500cacdb8afaccdc672dfc34eae7ee |
|
12-Nov-2014 |
Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> |
Cleanups needed to make clang happy This patch removes a slew of unused variables and some unused functions, fixes some incomplete initializations of structs and an sprintf parameter mismatching the format string. Change-Id: I35f22fdccc8350f885cd357d3685b869224fa433 Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
/system/bt/bta/av/bta_av_aact.c
|
948bea0b8cf0f8b9a99dec278bf518195028ccbe |
|
19-Jul-2014 |
Andre Eisenbach <eisenbach@google.com> |
Fix A2DP audio playback problem With some A2DP headphones/car kits an issue was observed where the SBC codec could not be initialized correctly and thus no audio was heard over A2DP. This change fixes a variable initialization issue that prevented the request for capabilities from being sent to the remote device. Change-Id: Ic55da0dbe5abd1e5bb89c8305b0a4c1f06b60a65
/system/bt/bta/av/bta_av_aact.c
|
afa6e1abbedaad8fe854b0f43999b8aeb801af91 |
|
28-Jun-2014 |
Matthew Xie <mattx@google.com> |
resolved conflicts for merge of e8c3d75b to master Change-Id: I78ef69c4d54a36243620ae14296d3507e3339567
|
d6151e9811a35ac965bfb96ad77c427d9a4f1325 |
|
22-Jun-2014 |
Matthew Xie <mattx@google.com> |
switch a2dp sync and source to the correct uuids bug 15687722 Change-Id: I09e5fdc7bf7c1bb0ff3c87dc43b228e3761cfa36
/system/bt/bta/av/bta_av_aact.c
|
e8c3d75b75493911ebf0f99c83676359657178f7 |
|
04-May-2014 |
Sharvil Nanavati <sharvil@google.com> |
Logging cleanup: BTIF and APPL. Change-Id: I5b1214642bbb4b9aecc0fd2c899a6ec2c9793286
/system/bt/bta/av/bta_av_aact.c
|
f7dd9f5779680da37dc89e5df2b26d436487818c |
|
24-Oct-2013 |
Hemant Gupta <hemantg@codeaurora.org> |
Add A2DP Sink Support Change-Id: I9affefdd2d00597545e49c593ef3bddb110d4c9c
/system/bt/bta/av/bta_av_aact.c
|
cc35559160745c60b42ae182002a59337d844d09 |
|
24-Oct-2013 |
Hemant Gupta <hemantg@codeaurora.org> |
Add A2DP Sink Support Change-Id: I9affefdd2d00597545e49c593ef3bddb110d4c9c
/system/bt/bta/av/bta_av_aact.c
|
f003a7292ca3fe7e7633b28c2d35e6314365dc8b |
|
31-Mar-2014 |
Matthew Xie <mattx@google.com> |
am 06589f6c: Merge "Bluetooth: Clear wait flag on Start response." * commit '06589f6c61579105aa10e35960d59a408f9eff52': Bluetooth: Clear wait flag on Start response.
|
ffc849a2958b812161e3e67964cd96efe13e31f3 |
|
23-Jan-2014 |
Rohit Singh <singhr@codeaurora.org> |
Bluetooth: Clear wait flag on Start response. When remote device does not responds to get capability causing HAL layer to be blocked hence change is made to clear wait flag on receiving Start response Change-Id: I8190742fab18340e3eaa01f748bba26a3d4d17e6
/system/bt/bta/av/bta_av_aact.c
|
5cd8bff2dd0337cb52bf48f312e3d2d55a8882fb |
|
01-Feb-2014 |
Mike J. Chen <mjchen@google.com> |
Major warnings cleanup Mostly fixing unused parameter warnings. A few other warnings also fixed like possible use of unitialized variables (no real issue found, just compiler couldn't follow the path), signed vs unsigned warning. Also fixed some typos, indent issues, removal of dead code, etc. Change-Id: I95eb887aefc4d559d7921f71a0af5f3bfb01ac01 Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/bt/bta/av/bta_av_aact.c
|
379743beded881127703334e1dda2cd327ec651d |
|
29-Sep-2013 |
Zhihai Xu <zhihaixu@google.com> |
Failure to start playback on A2DP sink after connection This is what happen: after Headset is connected, we call start_audio_datapath which will send AVDTP_Start command to Headset, Headset reject it with bad state. Bluedroid stack will ack failure to start_audio_datapath. The next time we write audio data to bluetooth, we will call start_audio_datapath again to send AVDTP_Start command to Headset Headset reject it with bad state again. Bluedroid stack will ack failure to start_audio_datapath. When the third time we call start_audio_datapath, right at that time we receive AVDTP_Start command from Headset. Handle AVDTP_Start command and Handle start_audio_datapath are in two different threads. Handle AVDTP_Start command is in btu_task thread. Handle start_audio_datapath() is in btif_task thread. We have race condition in this case Because when btif_task processed BTIF_AV_START_STREAM_REQ_EVT(triggered by start_audio_datapath), it don't know we receive AVDTP_Start command which is processed in btu_task. btif_task will send a message BTA_AV_API_START_EVT to btu_task, which will be handled by bta_av_do_start. AVDTP_start command from headset is handled by bta_av_start_ok. bta_av_start_ok will send BTA_AV_START_EVT with suspending true to btif_task and send AVDTP_Suspend command to headset to suspend the AVDTP for reconfiguration purpose. in bta_av_do_start, we will check whether the AVDTP is already started, we will know the AVDTP is already start at this time because bta_av_do_start is also running in btu_task. We will send BTA_AV_START_EVT with success to btif_task. In the btif_task, BTA_AV_START_EVT will be processed by btif_av_state_opened_handler: For the first BTA_AV_START_EVT with suspending true sent by bta_av_start_ok, it will ignore it: if ((p_av->start.status == BTA_SUCCESS) && (p_av->start.suspending == TRUE)) return TRUE; For the second BTA_AV_START_EVT with success sent by bta_av_do_start , it will ack success to start_audio_datapath, and change to BTIF_AV_STATE_STARTED/BTAV_AUDIO_STATE_STARTED, after receive success ack from bluedroid stack, we will start send Audio data to bluetooth. At last we received AVDTP_Suspend response accept from Headset, we will send BTA_AV_SUSPEND_EVT to btif_task, which will be handled by btif_av_state_started_handler. It will call btif_a2dp_on_suspended and call audio_state_cb with new audio state BTAV_AUDIO_STATE_STOPPED. so The state between bluedroid stack and audio data path is out of sync. The fix is to send failure message if we know we suspend AVDTP in bta_av_do_start, also make sure we won't miss acknowledgement for pending start if we exit opened state, to avoid audio data path dead lock. bug:10953908 Change-Id: I1704839977324b7c4e234eb843cddf3719e10d2c
/system/bt/bta/av/bta_av_aact.c
|
77d1cb6ff904b48ee85c09a06c5e05dd0ed049b9 |
|
22-May-2013 |
Kausik Sinnaswamy <kausik@broadcom.com> |
Fix for AV lockup on local and remote start collision Bug: 7002859 Change-Id: I6170be864b44011b98e08d7e2599021a3eec70a3
/system/bt/bta/av/bta_av_aact.c
|
5ae72cf049004ac3c0f2f2bc048d1638a3b13d55 |
|
16-May-2013 |
Zhihai Xu <zhihaixu@google.com> |
Media profile drop on ending the outgoing video call and music is heard locally receive AVDTP_Suspend response rejection which cause the A2DP disocnnected. There is collision of AVDTP_Suspend request: We send AVDTP_Suspend request and the headset send AVDTP_Suspend request also at the same time. then We send AVDTP_Suspend response, but the headset send AVDTP_Suspend response rejection with error code bad state after it receive the AVDTP_Suspend response from us. we call bta_av_suspend_cfm twice in this case: the first time we will call bta_av_suspend_cfm without error after receive AVDTP_Suspend request from headset. the second time we will call bta_av_suspend_cfm with error bad state after receive AVDTP_Suspend response rejection from headset. To fix this problem, we should ignore the AVDTP_Suspend response rejection from headset after receive AVDTP_Suspend request from headset. After we receive AVDTP_Suspend request from headset, the scb state will be changed to AVDT_SCB_OPEN_ST from AVDT_SCB_STREAM_ST. but when we receive AVDTP_Suspend response rejection from headset, we should ignore it when we are in AVDT_SCB_OPEN_ST. and also currently we already ignore AVDTP_Suspend response when we are in AVDT_SCB_OPEN_ST, I don't know why we didn't do it for AVDTP Suspend rejection. issue 8735903 Change-Id: I8db3ea6e7e4edfea41f255e7e29b8c7255cf3d96
/system/bt/bta/av/bta_av_aact.c
|
ead3cde4bac0c3e32cd31f149093f004eef8ceeb |
|
06-Feb-2013 |
Ganesh Ganapathi Batta <ganeshg@broadcom.com> |
Initial version of BLE support for Bluedroid Change-Id: I9825a5cef9be2559c34c2a529b211b7d471147cf
/system/bt/bta/av/bta_av_aact.c
|
5738f83aeb59361a0a2eda2460113f6dc9194271 |
|
13-Dec-2012 |
The Android Open Source Project <initial-contribution@android.com> |
Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d
/system/bt/bta/av/bta_av_aact.c
|