History log of /system/bt/bta/ag/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
95ac90b5e8f9b003f15c49d6bd5be5399ffa30c3 08-Nov-2016 Andre Eisenbach <eisenbach@google.com> resolve merge conflicts of c5bae32 to nyc-mr2-dev

Change-Id: Ib1acd5c8f60785470906941228593aa7453d5830
c5bae3277992bab4b41270eda17ac77e7d240b28 08-Nov-2016 Andre Eisenbach <eisenbach@google.com> Mask out HFP 1.7 feature bits if peer version is <1.7
am: ebba3ef2ea

Change-Id: Ifba883eecdf6296d94f6181564e3fdf69ec5a452
ebba3ef2ea5061a48aa0de49ebfdb98df64d803f 05-Nov-2016 Andre Eisenbach <eisenbach@google.com> Mask out HFP 1.7 feature bits if peer version is <1.7

Bug: 32378402
Merged-In: I568e8c4c584d56d744cf7a30273feac1d8d4c4df
Change-Id: Iac8684bdfd02b18cce260bedefb829e8f7285361
(cherry picked from commit 1ad2678e2ff5fa3dbfae9dc76ab646db10794e4e)
(cherry picked from commit 571f23ca31cdbc87cae8c078b5885246dd779498)
ta_ag_cmd.c
83a376cdc46388cd9af47eb8d8a810f7b194b8aa 23-Jul-2016 Andre Eisenbach <eisenbach@google.com> Remove position dependent lookup tables in AT command parser

The various position dependent lookup tables in the AT command parser
were out of sync, causing invalid responses to the AT+CBPS command for
example.

This patch gets rid of positionally dependent enums for simple lookup
tables that correlate all the values for easier, less error prone
maintenance of the related tables.

This re-instates a previously reverted patch after fixing incorrect
field order in tBTA_AG_INDICATOR_MAP.

Change-Id: I7f8a052e78706c8c72c5102b38cfe9ce200ae0d9
Fixes: 29978908
ta_ag_at.c
ta_ag_at.h
ta_ag_cmd.c
ta_ag_int.h
1b3e27469d7288b7696a1556b516e8f91c9d6a0f 07-Sep-2016 Devin Kim <dojip.kim@lge.com> Fix HFP AT command BIA failures

Running the PTE test case TC_AG_IIA_BV_01_I, a failure occurs due to
missing initialization of tBTA_AG_VAL.

Bug: 31325270
Test: PTS
Change-Id: I683eccd53d40e79ec03545166b18ffa1922f0fb2
ta_ag_cmd.c
292051c271cd1b2584ffdacd1913c6de13a0f6b6 25-Jul-2016 Tom Turney <tturney@google.com> Revert "Remove position dependent lookup tables in AT command parser"

This reverts commit 1e7afc829bde75489d14669b2baea1e9c47b1d56.

Revert Reason: This CL causes regressions b/30367872, b/30368041,
b/30368763.

Change-Id: I48da5caac1e9fe32462c236385f768b896fa6542
ta_ag_at.c
ta_ag_at.h
ta_ag_cmd.c
ta_ag_int.h
1e7afc829bde75489d14669b2baea1e9c47b1d56 23-Jul-2016 Andre Eisenbach <eisenbach@google.com> Remove position dependent lookup tables in AT command parser

The various position dependent lookup tables in the AT command parser
were out of sync, causing invalid responses to the AT+CBPS command for
example.

This patch gets rid of positionally dependent enums for simple lookup
tables that correlate all the values for easier, less error prone
maintenance of the related tables.

Change-Id: I84f7d4f4a803e6e52bf2021c6c74917e90bbc846
Fixes: 29978908
ta_ag_at.c
ta_ag_at.h
ta_ag_cmd.c
ta_ag_int.h
af5b8248593c80acd8b1afb695eafe5801b44f7d 15-Jul-2016 Andre Eisenbach <eisenbach@google.com> Make parameter set S4 default for eSCO

Bug: 29615817
Change-Id: I5256b31a746433f10c2e7de1629952f668c99d16
ta_ag_sco.c
e5bed64926d6ae45501617052f90932287da135b 29-Feb-2016 Mudumba Ananth <ananthm%broadcom.com@gtempaccount.com> HFP 1.7 profile update (1/4)

-> Added AG support for HFP 1.7 version upgrade which
adds new type of indicator called HF(headset) indicators.
-> Added support for two new AT commands AT + BIND and AT + BIEV
which have been appended to Hands-Free SLC sequence.
-> Added support to propagate the above commands and their data to
the upper layers.

Bug: 19983867
Change-Id: I93d5b2af949f9fb99507a954e623cd0927ddc976
ta_ag_act.c
ta_ag_cfg.c
ta_ag_cmd.c
ta_ag_int.h
ta_ag_sdp.c
f95c12a8e7c3f264b03a51644368ca4232cc3cc4 25-Jun-2015 Satish Kodishala <skodisha@codeaurora.org> Handle unknown codecs sent by HF

Use case:
1. Connect to headset supporting CVSD, mSBC and other codecs.
2. Verify if headset sending AT+BAC with supported codecs.
3. Check if SCO is established with mSBC codec.

Failure:
SCO is established with CVSD codec.

Root cause:
When parsing AT+BAC command, if unknown codec is received,
we are falling back to CVSD although mSBC is supported in HF.

Fix:
AT+BAC parsing function modified to return correct codecs
supported by HF when it encounters unknown codecs in arguments
of AT+BAC.

Bug: 27852645
Change-Id: I9ac7675c9d863e7362f85e3b7b8d9a42462bd5e9
ta_ag_cmd.c
65e9c8251cd9f70153861aabe09f8767b82ce434 27-Aug-2015 Satish Kodishala <skodisha@codeaurora.org> Initialize sco codecs supported with CVSD

Usecase:
1. Connect headset/carkit supporting codec negotiation
but does not send AT+BAC with available codecs.
2. Make a call and create SCO connection.
3. Transfer audio to AG from headset/carkit.
4. Transfer audio back to carkit.

Failure:
AG will not establish SCO connection with remote.

Rootcause:
We initialize codecs supported by remote as 0 and update
it with codecs received as part of AT+BAC. When AG sends
+BCS to start codec negotiation, it received AT+BCS=1 from
remote. Since 1 is not in the list of remote supported codecs
(0), AG will not create SCO connection in step#4.

Fix:
Initialize sco codecs supported by remote with mandatory
codec, CVSD.

Bug: 27852645
Change-Id: Ibe0e1a7bd3e59e8618568d320acfbde88f3fc11e
ta_ag_act.c
ta_ag_cmd.c
ta_ag_main.c
9d3ef5ea53a3209881d2bf67342977bee7ceffc7 25-Jun-2015 Satish Kodishala <skodisha@codeaurora.org> Clear remote BD address if SDP search fails

Use case:
1. Enable multi hf.
2. Pair and connect to a headset.
3. Turn off headset and try connecting to headset from AG.
4. After the connection fails, turn on headset.
5. Make sure headset initiates HF connection to AG.
6. Make MO/MT call, switch from headset to AG, vice versa using headset.

Failure:
When call is transferred from AG to headset, headset initiated
SCO connection request is rejected by AG.

Root cause:
For outgoing connection in step 3, SDP search fails. BD address of
remote headset is stored in scb[0]. BD address of headset with which
we tried to connect is not cleared in scb[0].

When incoming HF connection request is accepted in step 5, BD address
of headset is stored in scb[1]. Now, BD address of the same headset is
stored in both scb[0], scb[1].

When SCO connection request is received from headset, we get scb
information using BD address. However, since BD address in scb[0]
is not cleared, we end up selecting scb[0] for which there is no
headset connected. This makes us think that remote is initiating
SCO connection without SLC and we reject the SCO connection.

Fix:
Clear the BD address of remote when SDP search fails.

Bug: 27852645
Change-Id: I21a0b83fcd47fed91e28fe27bdfd6d541b6a527c
ta_ag_act.c
ba22a417d0700715872391ffad79058fe79fbec5 23-Jun-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Update the sniff policy when SCO is active

Use case:
1. Connect BT headset.
2. Make an outgoing call or receive a call on BT headset.
3. Check if sniff parameters are taking affect when SCO is active.

Failure:
Sniff parameters when SCO is active are not taking affect.

Root cause:
SCO link was not checked when updating power manager(PM)
about idle or busy states.

Fix:
During AG tx/rx activity, update PM based on SCO state.

Bug: 27852645
Change-Id: I4c09406395998bacf13471a273402a60f3b77f89
ta_ag_act.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
ta_ag_api.c
ta_ag_at.c
ta_ag_ci.c
ta_ag_rfc.c
ta_ag_sco.c
ta_ag_sdp.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
ta_ag_api.c
ta_ag_at.c
ta_ag_ci.c
ta_ag_rfc.c
ta_ag_sco.c
ta_ag_sdp.c
66209db61f94128f19ec09891ed99b1d10e4ebfb 08-Feb-2016 Andre Eisenbach <eisenbach@google.com> Remove BCM_STR* macros

This also fixes very incosistent null termination and various string
length issues.

Bug: 27069905
Change-Id: I527256d224ac5b18e3943d6038b9c912b247676f
ta_ag_api.c
ta_ag_cmd.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
ta_ag_at.c
ta_ag_sdp.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
ta_ag_act.c
ta_ag_cmd.c
ta_ag_int.h
ta_ag_main.c
ta_ag_sco.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
ta_ag_api.c
ta_ag_at.c
ta_ag_cfg.c
ta_ag_ci.c
ta_ag_cmd.c
ta_ag_main.c
ta_ag_rfc.c
ta_ag_sco.c
ta_ag_sdp.c
9f1c9ad85759c7663e3bbc494f8e75b2f107da67 28-Sep-2015 Pavlin Radoslavov <pavlin@google.com> GKI cleanup - Moved struct TIMER_LIST_ENT to OSI

* Moved struct TIMER_LIST_ENT to file osi/include/non_repeating_timer.h
and renamed it to timer_entry_t
NOTE: This is a short-term solution. timer_entry_t should be
removed, and its usage everywhere should be replaced by
struct non_repeating_timer_t .
* Renamed TIMER_CBACK to timer_callback_t
* Renamed TIMER_PARAM_TYPE to timer_param_t

Change-Id: I9ca830718bf900195f9c0a513a97f6995322693b
ta_ag_int.h
ta_ag_main.c
ta_ag_sco.c
70ae7de9451e3dc074a048ba98b672a6ba3a4551 23-Sep-2015 Pavlin Radoslavov <pavlin@google.com> GKI cleanup - Remove GKI pool related defines

* Removed pool ID related defines
* Updated / renamed / cleanup buffer size related defines
* Added new #define BT_DEFAULT_BUFFER_SIZE
* Removed unused defines

Change-Id: Ib1fbf463d1e6fda2c71631347de0c365a37ba5ce
ta_ag_ci.c
ea21b5dae90c8c51da2ccc22e8a8f2f8615fc961 10-Jul-2015 Miao Chou <mcchou@google.com> am 549c64d1: Fix security vulnerabilities in string operations

* commit '549c64d1eb96f8096915a39c2a3447190c851bce':
Fix security vulnerabilities in string operations
549c64d1eb96f8096915a39c2a3447190c851bce 09-Jul-2015 Miao Chou <mcchou@google.com> Fix security vulnerabilities in string operations

This CL prevents functions, bta_ag_hfp_result and bta_hf_client_send_atd, from
the potential strings overflowing.

Bug: 20674686,20677309
Change-Id: Iaef720fc784e020f237feb86e17857bddf57bbfc
ta_ag_cmd.c
bb95452741bfd65723ea417c25dbd326c7568ab7 03-Jun-2015 Arman Uguray <armansito@google.com> build: Fix ptr <-> integer cast warnings

This CL removes the -Wno-pointer-to-integer-cast and
-Wno-integer-to-pointer-cast flags from GN build files. The resulting errors
were fixed using the following:

1. All ptr <-> integer casts are now done by using the new
PTR_TO_INT/INT_TO_PTR macros defined in osi.h

2. The TIMER_PARAM_TYPE macro, defined in gki/common/gki.h and
include/bt_target.h have been redefined as void* rather than UINT32. This
is better, since "void*" can act as a simple container without any
precision loss that would be caused by a type such as UINT32 on 64-bit
systems. void* inherently is a safer container for all pointer types but
UINT32 isn't.

BUG=21570302

Change-Id: I4a82c4a40c91caa31e372382c40d424be220cbe3
ta_ag_main.c
ta_ag_sco.c
4633fb8d4b0376474f6d38c58ee5ee563a392ef5 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
ta_ag_at.c
ta_ag_cmd.c
fc0a9f6157e612b757a0b6ff3139da20cab2db91 22-Sep-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Clear remote BD address information.

This change makes sure that when RFCOMM
connection fails for HFP, AG control block
clears the remote bd address. This will prevent
the misuse of remote bd address.

Change-Id: I9b14cfe7ae18e72f0972704ac3aa5e915f70ddb3
ta_ag_act.c
e6f4ed85b19c49a3577b2c2842bb6ca20452ceb8 22-Oct-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Stop AG collision timer.

This change makes sure to stop collision
timer of AG when cleanup is happening
while BT turn off.

Change-Id: Ia877f98ba3136ec3278cbec5ab0d7ef2abfc6ed5
ta_ag_main.c
b0765000f362bd48fbf48fd4625a9b3ad825ee14 21-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Return ERROR for invalid CHLD command arguments

Return ERROR for invalid chld commands like "AT+CHLD=!"
or "AT+CHLD=0a" etc. In such cases, held call was getting
terminated.

Change-Id: I93d159b20da7086fac3374ce2e163d1309680045
ta_ag_cmd.c
9b6dfa44d027e093d38ea7b1a402f0b0c00b6e28 22-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Restarting PM timer for AG while reading OR writing

- Once AG receives any data(eg. AT commands) from
remote device(HF) and sending the response to remote
device, PM(Bluedroid power Manager) timer should be restarted
(stop & start) for AG.

- Increased the sniff timer value to 7 seconds for AV & AG
profiles to avoid sniff related IOT issues.

Change-Id: I8c1b79d272391b3fa34b193477a34d561f4c508d
ta_ag_act.c
4f51fc3650873535d20e4cf00da68d723c1378b6 28-Oct-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Don't close SCO for MO calls

This change removes condition to disconnect SCO
when MO call process is started.

Change-Id: I2af4ab82c097c7d9ce1bc892bdf40cc09ff6d97e
ta_ag_cmd.c
c1c02ce58f8513ab1c6ab3010be4867c22b3b5c6 04-Jun-2015 Andre Eisenbach <eisenbach@google.com> Fix compile error in bta_ag_sco.c

Change-Id: I8839ba732560a31a5e8a2351ea4bfb16999cf5ea
ta_ag_sco.c
8f4fb27a66a83cc65eb7923b6912d0aaba279a8b 21-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Create listen SCO for HS1 if HS2 disconnects during SCO xfer

During SCO transfer process from HS1 to HS2, firstly active SCO for
HS1 is disconnected. However, if suddenly HS2 disconnects even
before SCO transfer is complete, listen SCO for HS1 is not created.
This causes further incoming SCO connections from HS1 to be rejected.
The change creates listen SCO for HS1 and moves SCO state properly
to LISTEN.

Change-Id: I0993c1ba1c24b3b7e9c243d179a913d7a0c40446
ta_ag_int.h
ta_ag_main.c
ta_ag_sco.c
fafa2e20a8b56ab8320adebce2c6dc93d01801c5 30-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Open SCO for held call.

Use case:
1. Connect to headset/carkit
2. Make an outgoing call from AG
3. Turn off BT on AG
4. Hold the call from AG
5. Turn on BT on AG (No SCO link is established here)
6. Unhold call from AG (still no SCO link is established)

Failure:
No SCO connection established when held call is there
during headset connection.

Root cause:
SCO is not initiated when SLC is done during held call.

Fix:
AG opens SCO connection when HF connected while in call and
the call was in held state.

Change-Id: I63d7655d26ddbf68cbf94c745df745cffa917b5e
ta_ag_cmd.c
8885d6f4ea0aca5e97a5f405434d4494c5e41b85 28-Nov-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Update call state before opening SCO.

This change makes sure to update the current
call state before opening SCO connection when
incoming call is answered. Some car kits are
strict in checking this sequence and go in
bad state if not done this way.

Change-Id: Ie744dc26c02d897eaf016ee73022bfc2a0db067e
ta_ag_cmd.c
616e7417c9520db24adf20b7c0aaf967ce6e106d 22-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Handle multi party call states

UseCase:
1. Set up Bluetooth connection between phone and remote device.
2. Disconnect BT link by turning off remote device.
3. Start Mo call from phone.
4. Receive MT call from far end.
5. Turn on remote device.
6. BT connection gets established successfully, but audio
doesn't get transferred to headset.

Failure:
Call audio not routed to BT HS. SCO not established.

Root cause:
When a HS connects while in an active call and 2nd call
(incoming/outgoing/alerting) setup ongoing, incorrect post SLC
call setup updates might cause HS to get confused as phone had
already updated correct call states in CIND response during SLC.
This may cause HS to behave abnormally like delayed response to
BCS as seen with jabra wave +.

Fix:
Avoid sending incorrect call updates post SLC since we already
have sent correct updates during SLC as reponse to CIND.

Change-Id: I53e57baf7cca782af6f374a043667971c66a956d
ta_ag_cmd.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
ta_ag_at.c
ta_ag_cmd.c
40969d03ffa9cfe67dbd3cec6ce074443638ce4a 22-Sep-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Clear remote BD address information.

This change makes sure that when RFCOMM
connection fails for HFP, AG control block
clears the remote bd address. This will prevent
the misuse of remote bd address.

Change-Id: I9b14cfe7ae18e72f0972704ac3aa5e915f70ddb3
ta_ag_act.c
16eae38653e9f1bc2e7779dd7d5792adc05d2dbb 22-Oct-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Stop AG collision timer.

This change makes sure to stop collision
timer of AG when cleanup is happening
while BT turn off.

Change-Id: Ia877f98ba3136ec3278cbec5ab0d7ef2abfc6ed5
ta_ag_main.c
c380680cf4bdfd7cd4befea57f81407fccb88752 21-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Return ERROR for invalid CHLD command arguments

Return ERROR for invalid chld commands like "AT+CHLD=!"
or "AT+CHLD=0a" etc. In such cases, held call was getting
terminated.

Change-Id: I93d159b20da7086fac3374ce2e163d1309680045
ta_ag_cmd.c
846c48f8a8a648302e0584acfe6e8e222d22fd1d 22-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Restarting PM timer for AG while reading OR writing

- Once AG receives any data(eg. AT commands) from
remote device(HF) and sending the response to remote
device, PM(Bluedroid power Manager) timer should be restarted
(stop & start) for AG.

- Increased the sniff timer value to 7 seconds for AV & AG
profiles to avoid sniff related IOT issues.

Change-Id: I8c1b79d272391b3fa34b193477a34d561f4c508d
ta_ag_act.c
2d0d790ca98b6c46be085e1e0a3e6d16ebd8cddf 28-Oct-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Don't close SCO for MO calls

This change removes condition to disconnect SCO
when MO call process is started.

Change-Id: I2af4ab82c097c7d9ce1bc892bdf40cc09ff6d97e
ta_ag_cmd.c
e1ded77ae6d10854dc2bd1aebdd9b53442cc4ba4 04-Jun-2015 Andre Eisenbach <eisenbach@google.com> Fix compile error in bta_ag_sco.c

Change-Id: I8839ba732560a31a5e8a2351ea4bfb16999cf5ea
ta_ag_sco.c
5b675bc41986a159023c51b561e81939f0632f95 21-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Create listen SCO for HS1 if HS2 disconnects during SCO xfer

During SCO transfer process from HS1 to HS2, firstly active SCO for
HS1 is disconnected. However, if suddenly HS2 disconnects even
before SCO transfer is complete, listen SCO for HS1 is not created.
This causes further incoming SCO connections from HS1 to be rejected.
The change creates listen SCO for HS1 and moves SCO state properly
to LISTEN.

Change-Id: I0993c1ba1c24b3b7e9c243d179a913d7a0c40446
ta_ag_int.h
ta_ag_main.c
ta_ag_sco.c
a7ce13feaa2a84ff329f2bbd4ab964f0f6d54f0a 30-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Open SCO for held call.

Use case:
1. Connect to headset/carkit
2. Make an outgoing call from AG
3. Turn off BT on AG
4. Hold the call from AG
5. Turn on BT on AG (No SCO link is established here)
6. Unhold call from AG (still no SCO link is established)

Failure:
No SCO connection established when held call is there
during headset connection.

Root cause:
SCO is not initiated when SLC is done during held call.

Fix:
AG opens SCO connection when HF connected while in call and
the call was in held state.

Change-Id: I63d7655d26ddbf68cbf94c745df745cffa917b5e
ta_ag_cmd.c
7b0bfd32833a8da08069b60e6568aace90778b62 28-Nov-2014 Mallikarjuna GB <gbmalli@codeaurora.org> Update call state before opening SCO.

This change makes sure to update the current
call state before opening SCO connection when
incoming call is answered. Some car kits are
strict in checking this sequence and go in
bad state if not done this way.

Change-Id: Ie744dc26c02d897eaf016ee73022bfc2a0db067e
ta_ag_cmd.c
d345bb208fe35923b60bca6af76b0a6e023fc56f 22-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Handle multi party call states

UseCase:
1. Set up Bluetooth connection between phone and remote device.
2. Disconnect BT link by turning off remote device.
3. Start Mo call from phone.
4. Receive MT call from far end.
5. Turn on remote device.
6. BT connection gets established successfully, but audio
doesn't get transferred to headset.

Failure:
Call audio not routed to BT HS. SCO not established.

Root cause:
When a HS connects while in an active call and 2nd call
(incoming/outgoing/alerting) setup ongoing, incorrect post SLC
call setup updates might cause HS to get confused as phone had
already updated correct call states in CIND response during SLC.
This may cause HS to behave abnormally like delayed response to
BCS as seen with jabra wave +.

Fix:
Avoid sending incorrect call updates post SLC since we already
have sent correct updates during SLC as reponse to CIND.

Change-Id: I53e57baf7cca782af6f374a043667971c66a956d
ta_ag_cmd.c
444a8da807abaf5f9e813ce70c56a79160495fb3 06-Mar-2015 Satya Calloji <satyac@broadcom.com> LE Privacy 1.2 and LE secure connections

Bug: 19816438
Original author: Chaojing Sun <cjsun@broadcom.com>
Change-Id: I5951f4d4e038f8348a62aa6d19b2111bae0b3ecc
ta_ag_act.c
933926c92e1378cc76bc9c149107e670c4872d4e 03-Apr-2015 Scott James Remnant <keybuk@google.com> Fix missing #includes needed for glibc

Some standard library functions are used while relying on bionic headers
including the headers the functions were actually declared on. Add those
missing #includes so that bluetooth.default.so will compile on glibc.

Change-Id: Ied9f89ce5a05911fca63f6bfe1b8cc8196ab3b1c
ta_ag_sco.c
6afb248849399cfba59fb1e683a06e31d88e5d1d 25-Mar-2015 Mudumba Ananth <ananthm@broadcom.com> Resolved hardware error observed during SCO Connection setup

Hardware error was caused due to a faulty HCI command formed in the
process of vendor specific pre-SCO setup in the stack(set_audio_state)

Fixed the above problem and also added back the vendor (interface)
mapping for the set_audio_state functionality to facilitate the
sending of the pre-SCO vendor specific commands.

Made common vendor library audio setting by moving to hci subsystem.

General cleanup around this functionality.

Bug: 19923226
Change-Id: I4a743f6725459f360bd2a90e0a46f08fcca2292d
ta_ag_sco.c
794f3b5f126fffc3dd1129a710187591348bbf23 01-Oct-2014 Chris Manton <cmanton@google.com> Removal of bd.[c|h]

Consolidate legacy types into bt_types.h
ta_ag_act.c
ta_ag_api.c
ta_ag_cmd.c
ta_ag_main.c
ta_ag_rfc.c
ee7d6b06b6742ef9d84f4915871c4edb088d23f8 05-Sep-2014 Zach Johnson <zachoverflow@google.com> Remove Windows related macros
ta_ag_act.c
ta_ag_rfc.c
66432dcffe211e317d35978283a04a96d5620bdf 27-Apr-2014 Matthew Xie <mattx@google.com> Add WBS support on Bluedroid (2/6)

Bug 13764086

Change-Id: I12bf302f7dd19efb497ad49d4d1d638a7a926049
ta_ag_act.c
ta_ag_cmd.c
ta_ag_int.h
ta_ag_main.c
ta_ag_sco.c
e8c3d75b75493911ebf0f99c83676359657178f7 04-May-2014 Sharvil Nanavati <sharvil@google.com> Logging cleanup: BTIF and APPL.

Change-Id: I5b1214642bbb4b9aecc0fd2c899a6ec2c9793286
ta_ag_act.c
ta_ag_api.c
ta_ag_ci.c
ta_ag_cmd.c
ta_ag_main.c
ta_ag_rfc.c
ta_ag_sco.c
ta_ag_sdp.c
82d0a118de082b95cc41b63de8fcd79c9f1f0831 06-Jun-2014 Sharvil Nanavati <sharvil@google.com> Eliminate dead code: remove GKI_sched* from the codebase.

Change-Id: I607bd3bf88ef8847c8a7e984a54eabedd4fb7516
ta_ag_api.c
ta_ag_main.c
ffa5c93d455f33af1be3b04d39520413dc24afd5 30-Apr-2014 Zhihai Xu <zhihaixu@google.com> fix compilation error due to not include correct header

Change-Id: Ic4c1fb319f9c4202efd108d180f438a6fa26e05a
ta_ag_cmd.c
2cb90bc58fc075ec2f814ada5ae8f728380566c1 15-Mar-2014 Nitin Srivastava <nitinsr@codeaurora.org> Add support for Multi-HFP devices

1. Add multi headset support in stack.
2. Each HS will be associated with unique CB in BTIF
and also corresponding SCB in BTA.
3. Upstream event callbacks will be sent to
specific HS based on BD_ADDR.
4. Similiarly all commands to BTIF will be for
specific HS.

Change-Id: I0dc6b1b54f16244b802d818ae60944877a41d020
ta_ag_act.c
ta_ag_cmd.c
ta_ag_main.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>
ta_ag_act.c
ta_ag_cmd.c
ta_ag_main.c
ta_ag_rfc.c
ta_ag_sco.c
ta_ag_sdp.c
0856d9c0a662d78ab0f68e6e0df1721ab43dbb45 29-Jul-2013 Sunny Kapdi <sunnyk@codeaurora.org> Bluetooth: Send Error for Invalid AT Command.

Some Headsets send HFP 1.6 cmds even when it is not
supported by DUT.Send error response in those cases.

bug 11450717

Change-Id: If7745959c00fd49bd737b41a49adba9e726aa5c7
ta_ag_cmd.c
2154e12efeec88780933d47b3c3686ff9f6fe84d 01-May-2013 Zhihai Xu <zhihaixu@google.com> BT problems in Acura MDX

problem2 unexpected beep from carkit during ringing.
The root cause is
the interval between the ring alert is 10 seconds. it is too long
for the carkit which trigger the beep from the carkit. After I
change the inteval to 5 seconds, no unexpected beep from the carkit.

issue 8720373

Change-Id: I6f1cc1faba27e61c80b31c63b6673436e003b117
ta_ag_cmd.c
5738f83aeb59361a0a2eda2460113f6dc9194271 13-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf

Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d
ta_ag_act.c
ta_ag_api.c
ta_ag_at.c
ta_ag_at.h
ta_ag_cfg.c
ta_ag_ci.c
ta_ag_cmd.c
ta_ag_int.h
ta_ag_main.c
ta_ag_rfc.c
ta_ag_sco.c
ta_ag_sdp.c