History log of /system/bt/btif/src/btif_rc.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
470466e6beea7ee10675ec780a2afa23bd8a3cd4 06-Apr-2016 AnubhavGupta <anubhavg@codeaurora.org> Do not request AVRC_CAP_COMPANY_ID if A2DP Sink is not enabled

Also fixed AVRC_PDU_GET_PLAY_STATUS timeout response.

Bug: 28177785
Change-Id: Icde64a5c1806453850abe101f9707fff61566566
(cherry picked from commit 1c512b851d76deac860fce1232e4a1fa1a097f1c)
/system/bt/btif/src/btif_rc.c
574dcfb73e3741d715f7d4394fe5d3bd587cb0d2 12-May-2016 Pavlin Radoslavov <pavlin@google.com> Restart failed system calls interrupted with errno of EINTR

In number of places we don't handle properly system calls failures
when the errno is EINTR (i.e., the system call was interrupted
by a signal). In all our use cases, the system calls should be
restarted. The handling of the following system calls (as used in the code)
has been updated/fixed:

poll, send, recv, sendmsg, nanosleep, epoll_wait
read - mostly (e.g., socket-like fds)
write - mostly (e.g., socket-like fds)
select, accept, connect

Bug: 28471477
Bug: 28658141
Change-Id: I03e6f0f67e33876780fb6d02c33eb84547ba8f95
/system/bt/btif/src/btif_rc.c
95673843582fccf026d8af7592428f9b864f52fd 11-Apr-2016 Andre Eisenbach <eisenbach@google.com> Move autopair blacklist to interop database

Blacklist by partial name etc. was not working and had no effect; all
BDAs in the config file start with 00:, which is implausible at best, so
deleted...

Added new mechanism to blacklist by BDA only initially and added Subaru
car kit to blacklist.

Bug: 27347017
Change-Id: Ie2941cb1ab663b5444b02c44f85032f13be4ab46
/system/bt/btif/src/btif_rc.c
69682acf0149e9e51cda5b8747866ca9dc37b907 03-Dec-2013 Ayan Ghosh <abghosh@codeaurora.org> Peer support of Absolute Volume to be updated only if device supports A2DP

Peer support of absolute Volume feature should be updated to Audio
frameworks only for device which supports A2DP Sink and AVRCP Absolute
Volume TG roles together.
Audio manager need not be updated for AVRCP only peer devices as
that would cause sudden rise in ongoing stream volume when avrcp only
device connects, if it is set to some lower value with other device
connected for A2DP.

Bug: 27852645
Change-Id: I75509d0b0fd1b06fa08390940a327dd2887d7562
/system/bt/btif/src/btif_rc.c
68ad33b15a1becf87bca8f0a420b29ffb3342a0a 07-Aug-2013 Ayan Ghosh <abghosh@codeaurora.org> Allow Carkit to trigger play immediately after call

Removing check in stack where AVRCP Play and Pause commands
are being dropped if carkit initiates play or pause within
six seconds.
This addresses the scenario where JCI-Mazda CK pauses the
streaming by initiating Avrcp Pause right before making call
and can not resume the streaming by sending Avrcp Play right
after call ends.

Bug: 27852645
Change-Id: Ibb04223de746f528b356e78bd65130d3fd526a44
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
a5090f2c33919f57c82107ec62ce5ec5705e7e21 26-Feb-2016 Prashant Malani <pmalani@google.com> Fix miscellaneous compilation errors

- Move variables within #defines to avoid unused errors.
- Place #define's correctly to avoid unused function errors.
- Correct parameter passed into a function.

Bug: 27336841
Change-Id: I7c2ab24b3bd3725d126c90483473af83b88687a2
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.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/btif/src/btif_rc.c
90b71eac9b45f90ff3267fa0a400cc1daaec88d4 09-Feb-2016 Andre Eisenbach <eisenbach@google.com> Add Developer menu entry to disable Bluetooth absolute volume

Bug: 27078729
Change-Id: I24ac605c6d02dc3fe3904c441ec416cb66b63168
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
d2e3b538edf83060d163c603e6ffd0c0977604ee 13-Feb-2016 Sanket Agarwal <sanketa@google.com> Remove %s from Log message.

This crashes when A2DP SNK role is executed in print statement.

Change-Id: Iceca09ecc5977a5379d7f98f265fc2d52332c6e4
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
f94e67c2d96d25f221e0503f334f4a0a277bc68c 02-Feb-2016 Pavlin Radoslavov <pavlin@google.com> Fix the processing of AVRCP Rcvd Pass Through messages

The assignment and handling of the optional tAVRC_MSG_PASS.p_pass_data
data buffer pointer was inconsistent:
- For originating AVRCP packets, it was assigned to osi_getbuf()
allocated memory.
- For received AVRCP packets, it was a pointer in the middle of the
received data buffer.
However, in the common function avrc_pass_msg(), the p_pass_data pointer
was deallocated by osi_freebuf(). This triggered an assert when processing
AVRCP Rcvd Pass Through messages with non-zero Data Length field.

Bug: 26865159
Change-Id: I1b2eb6713636c290caca16e77226c114d99dcb8e
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
69a34362c65533155578623d30845b04fa6285b1 20-Jan-2016 Pavlin Radoslavov <pavlin@google.com> Support for A2DP Sink - Follow-up fix

Update the code so it matches the corresponding code in the internal tree.

Change-Id: I7cb143cde31e2cfca54b2172737cf262ae478186
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
5bcbaa498c0d12806a4d57a3b09a05dff5aa5a9e 17-Dec-2015 Sharvil Nanavati <sharvil@google.com> Fix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false

Without this change, setting AVRC_ADV_CTRL_INCLUDED to false would
result in the native code reporting the remote device supports
absolute volume even though we don't.

Bug: 26070064
Change-Id: I5b88fa0adb89983de28a216898a1d8957fa454a1
/system/bt/btif/src/btif_rc.c
d0aa6cc53abaf122a2426c20691ccfa025ca7369 11-Dec-2015 Andre Eisenbach <eisenbach@google.com> Blacklist devices for absolute volume control

Some devices do not play well with absolute volume control. They either
play back music at unacceptably loud volume levels or provide
insufficiently granular volume control where a single "step" of volume
change results in unexpectedly large jumps in volume.

Bug: 26070064, 26060431
Change-Id: I5a336fba87119325b47a5ad385e9c48a631f2121
/system/bt/btif/src/btif_rc.c
58593a02736ff9ac9bdccd0e3186602f17452cdf 20-Oct-2015 Andre Eisenbach <eisenbach@google.com> Remove absolute volume control whitelist

Remove the absolute volume control whitelist to enable absolute volume
control for all compatible devices.

Bug: 25081918
Change-Id: Iab0e4b4c4fd3dac0fefdf62ec80419dd64b56c0c
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
642f233005cdcbbbcb92b77d6297fc080b7f072e 16-Sep-2015 Pavlin Radoslavov <pavlin@google.com> GKI cleanup - Eliminated function GKI_delay

Removed function GKI_delay from the GKI module, and replaced
it with a local static function inside file btif/src/btif_rc.c - the
only place it is (still) used.

Change-Id: Id8f3f700efd22d6e31c70aa8b1724ffa9afbc631
/system/bt/btif/src/btif_rc.c
08393054f0867d0f86a7f9c2eb156e67a86382c7 07-Aug-2015 Marie Janssen <jamuraa@google.com> resolved conflicts for merge of 49a86709 to mnc-dev-plus-aosp

Change-Id: Icd7ec2fd78ac4383da430708a88abaeba9009437
49a86709488e5cfd5e23759da18bf9613e15b04d 08-Jul-2015 Marie Janssen <jamuraa@google.com> build: LOG_TAG consistency, include order, build fixes

Fix the order of includes across a bunch of files, and declare LOG_TAG
at the top of every file in which it is used.

Consistently use bt_ as a LOG_TAG prefix.
Fix issues with LOG macro usage.
Remove unused includes and double-includes (when in related .h)

Add includes as necessary to compile cleanly (problems surfaced by
reordering includes)

Change-Id: Ic55520c8302b06bbc1942c10c448b20844669da6
/system/bt/btif/src/btif_rc.c
843101be012626fcc5843269e8edc4ff592866d9 07-Jul-2015 Anubhav Gupta <anubhavg@codeaurora.org> am 9c5d0727: Override remote suspend flag on local play state changes

* commit '9c5d0727dd4cd09e44c032506c28ab4120ad3b88':
Override remote suspend flag on local play state changes
9c5d0727dd4cd09e44c032506c28ab4120ad3b88 27-Jul-2013 Anubhav Gupta <anubhavg@codeaurora.org> Override remote suspend flag on local play state changes

- Remote device may initiate AVDTP Suspend within 3s of AVRCP pause,
which sets remote suspend flag. Later on resumption of local playback
A2DP packets can not be processed further as Remote suspend flag
remains set. current change overrides remote suspend flag if local
suspend is triggered later.
- This change covers the usecase where play is pressed from DUT UI
before local suspend triggers in such scenarios current change takes
care of resetitng remote suspend flag on AVRCP play state change event.
- Moreover this change will drop A2DP packets when the setparameter
is called with A2dpSuspended=true and resumes when the mentioned parameter
is reset.

This change along with corresponding app change helps mitigating
issues reported due to A2Dp, HFP synchronizations and local and remote
device initiated AVDTP suspend handling.

Bug: 22028876
Change-Id: I3bb334373414170254744d9233cbd2e66219bfa0
/system/bt/btif/src/btif_rc.c
557064ccf0b7e0722a152fbf341adab3c969269d 27-Jun-2015 Pavlin Radoslavov <pavlin@google.com> am 3a2fa83d: Copy an AVRC packet before sending a response back

* commit '3a2fa83dac1b07b661a20e2412aad9bf81492106':
Copy an AVRC packet before sending a response back
3a2fa83dac1b07b661a20e2412aad9bf81492106 26-Jun-2015 Pavlin Radoslavov <pavlin@google.com> Copy an AVRC packet before sending a response back

Don't reuse AVRC buffers for responding back. Apparently,
in the AVRC packets we transmit the offset with the payload must
be at least 15 octets. If the original buffer is not large enough,
this results in memory corruption.

Also, use an explicit check for 'bt_rc_ctrl_callbacks' as a workaround
until the upper layer does the right thing with the callbacks registration.

Bug: 22006014

Change-Id: I28c248d1580bdddbda76298d19faadf8985187fc
/system/bt/btif/src/btif_rc.c
335c208713b3c9eadcc301acac947b2f96e31da6 17-Nov-2014 Anubhav Gupta <anubhavg@codeaurora.org> Ignore STOP command if A2DP stream is suspended

Ignore STOP command if A2DP stream is already suspended.
Some carkits send STOP command before VOIP call initiation
but don't send PLAY when call ends which hinders DUT to resume
audio playback after call termination.

Change-Id: I41cc1fc6f4b6cfaa1560d729baa0ca27f6dfe8c8
/system/bt/btif/src/btif_rc.c
c3aa28eb96782e966d3b044eb9edeeedaa95bd39 13-Mar-2014 Anubhav Gupta <anubhavg@codeaurora.org> Reject second AVRCP connection.

This change rejects the RC connection from
second device if the DUT is already connected
to RC of first device.
This addresses the problem of improper closure
of Uinput device on disconnection of Avrcp
to make sure Avrcp passthrough commands work
as desired.

Change-Id: If2e39cd90575baffd0e4442b8e7cd2a91eebdf56
/system/bt/btif/src/btif_rc.c
4e3e372af6bba32d27a154679e39cada3034df41 11-May-2015 Andre Eisenbach <eisenbach@google.com> Only register key types with uinput that we can actually map

Bug: 20641307
Change-Id: I40cb1e22c35963429481a2cc9da897b5b2f554fe
/system/bt/btif/src/btif_rc.c
86fd008e1ca09ebaad8b4b72255b27de2b6fbe6d 05-Jun-2015 Anubhav Gupta <anubhavg@codeaurora.org> am 1f9dfcbb: Ignore STOP command if A2DP stream is suspended

* commit '1f9dfcbb526c8d0cba080e02df7c4613b7433f18':
Ignore STOP command if A2DP stream is suspended
1f9dfcbb526c8d0cba080e02df7c4613b7433f18 17-Nov-2014 Anubhav Gupta <anubhavg@codeaurora.org> Ignore STOP command if A2DP stream is suspended

Ignore STOP command if A2DP stream is already suspended.
Some carkits send STOP command before VOIP call initiation
but don't send PLAY when call ends which hinders DUT to resume
audio playback after call termination.

Change-Id: I41cc1fc6f4b6cfaa1560d729baa0ca27f6dfe8c8
/system/bt/btif/src/btif_rc.c
9aa7804e3e363950af1b58d4bde41b4a0a5144d7 05-Jun-2015 Anubhav Gupta <anubhavg@codeaurora.org> am 137bed02: Reject second AVRCP connection.

* commit '137bed026881654febddfa2d797e06ce9f8e58fa':
Reject second AVRCP connection.
137bed026881654febddfa2d797e06ce9f8e58fa 13-Mar-2014 Anubhav Gupta <anubhavg@codeaurora.org> Reject second AVRCP connection.

This change rejects the RC connection from
second device if the DUT is already connected
to RC of first device.
This addresses the problem of improper closure
of Uinput device on disconnection of Avrcp
to make sure Avrcp passthrough commands work
as desired.

Change-Id: If2e39cd90575baffd0e4442b8e7cd2a91eebdf56
/system/bt/btif/src/btif_rc.c
99d68906fa80be84821d0fba6472f04f7f9bff10 02-Jun-2015 Arman Uguray <armansito@google.com> am d30195cb: gn-build: Get btif to compile as its own module

* commit 'd30195cbf09735da593e186c4c99cce6232b072e':
gn-build: Get btif to compile as its own module
d30195cbf09735da593e186c4c99cce6232b072e 30-May-2015 Arman Uguray <armansito@google.com> gn-build: Get btif to compile as its own module

This CL adds support to build //btif:btif as its own target as a static library
by introducing a new module-level BUILD.gn file, adding missing includes, and
conditionally compiling code that is Android-specific (depends on libcutils).
This removes/breaks some functionality on non-Android builds since the
corresponding features are missing until we have a more unified replacement.

BUG=21339022

Change-Id: Ibb0372da45f256c55fa894fdda3d70319ea008c9
/system/bt/btif/src/btif_rc.c
a778a64c053acdb99b7a14b5837b4f12d83009a1 11-May-2015 Andre Eisenbach <eisenbach@google.com> Only register key types with uinput that we can actually map

Bug: 20641307
Change-Id: I40cb1e22c35963429481a2cc9da897b5b2f554fe
/system/bt/btif/src/btif_rc.c
2cd086a11a972f2e437dd521a121ed76ea79a15a 15-Apr-2015 Vinit Deshpande <vinitd@google.com> am f29a2fb..e07ad10 from mirror-m-wireless-internal-release

e07ad10 merge in m-wireless-internal-release history after reset to d232721ae5e5b6949a5249f0d116408b8a3c5f1d
d232721 L2CAP socket - fix merge errors
899b771 BR/EDR secure connections support
7fb0da6 Support numeric comparison in SMP
aa351f2 merge in m-wireless-internal-release history after reset to 399e89150b3df87172bdf92d54712b379324b149
399e891 Fix for AVRCP CTRL stops sending pass through command
daddea9 Free Avrcp Controller callbacks on Cleanup
764babe Protect reset of out stream with mutex
444a8da LE Privacy 1.2 and LE secure connections
8372aa5 L2CAP and SDP Search API for BT profiles (2/2)
fd422a7 Update Service Availability.
2a0652a merge in m-wireless-internal-release history after reset to 0b47e0a35c16f5b7d77c30ec1c095ed92ff4fd74
78d0f4c merge in m-wireless-internal-release history after reset to m-wireless-internal-dev
0b47e0a Avoid duplicate disconnection callbacks for fixed channel connections
5646973 Add a section on assertions to the style guide.
d768767 Merge "Avoid null-pointer dereference in l2c_release_lcb()" into m-wireless-dev
ef92b53 Avoid null-pointer dereference in l2c_release_lcb()
4bf68bf merge in m-wireless-internal-release history after reset to f538707fe64c62b1dbb8e4210e4a1bfa0bab2b56
de6ac86 Add a 'Bluedroid conventions' section to the style guide.
1b80439 Add a section to the style guide on variable declarations.
485f19e merge in m-wireless-internal-release history after reset to 4540f59bc447dc2b7b31a3e974b74a60b2417e7d
bef8940 merge in m-wireless-internal-release history after reset to 841c9103cad1898ceca87b734acd4d4537f9f452
ab4c38c merge in m-wireless-internal-release history after reset to a7e698f5a9e062f62e21bc435643975c30bab846
2807a74 merge in m-wireless-internal-release history after reset to a7e698f5a9e062f62e21bc435643975c30bab846
99dbe9a merge in m-wireless-internal-release history after reset to 78c0b060f29b7b7014adddb2f98bf6ae9755c488
f7f8399 merge in m-wireless-internal-release history after reset to a5371c238b4e874d8313ac56a23451e7345ff541
3aa60d7 Make A2DP audio HAL a shared library again
3256a31 Move unused include file out of hci_audio.h
b866b69 Add option for schedule_next_instance to force rescheduling
4ae5e3e Ensure alarms are called back when they expire in the past
a7bd03e Rewrite alarms to use a single posix timer instance
88e7b15 Resolved hardware error observed during SCO Connection setup

Change-Id: Ib9a0a2ffca1d4811a9a9e56674bf43275d8b2205
daddea9cf1f5dbf51b9a2e9c2b02956a41d77a6c 08-Sep-2014 Anubhav Gupta <anubhavg@codeaurora.org> Free Avrcp Controller callbacks on Cleanup

Free AVRCP Controller callbacks on cleanup so that callbacks
are initialized properly on next initialization.

Change-Id: Ieaf4c1989a7c40c591adfb7cb47912532ceee46e
/system/bt/btif/src/btif_rc.c
b246a1a750c5a337faaa6033b39e78c8bdd4c2fb 10-Apr-2015 Prerepa Viswanadham <dham@google.com> Merge commit '4bf68bf020c7fd1aabcdc4b5d8f5fbb8bacdec9d' into merge_work

Change-Id: Ibc6d6e691b7f97611d16f96220346dfd6ffbbf52
4540f59bc447dc2b7b31a3e974b74a60b2417e7d 05-Feb-2015 VenkatRaghavan VijayaRaghavan <venkatrv@broadcom.com> Static code analysis cleanups and minor bug fixes

- Fix for initializing all the un-initialized variables
- Handling system call failure like socket,fcntl etc...
- In btpan_tap_close validate tap_if_down and close the socket.
- Invalid memset size, which could have potential memory issue
- Change -1 to INVALID_FD where appropriate

Bug: 19417758
Change-Id: Id31832f8678b2d72c80740c29b946a94e7ae0197
/system/bt/btif/src/btif_rc.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
/system/bt/btif/src/btif_rc.c
e1a9e52ff59d36bd1bb5b7b3a02fafba6394edfe 31-Mar-2015 Etan Cohen <etancohen@google.com> Merge commit 'f7f839985b3931682363d2ef3b7c5cae55a842ee' into merge

Change-Id: Iaaec1ea0bf3009b7e32a9a60f697631a3f56e889
80349eb4a14e74b6e28dac7829dcf2a199bd1de5 24-Mar-2015 Mallikarjuna GB <gbmalli@codeaurora.org> am 0d65d4cd: AVRCP: Proper handling of Fragmented AVCTP packet

* commit '0d65d4cdafc165484dfc8d1c5af4ac1cb7453fd7':
AVRCP: Proper handling of Fragmented AVCTP packet
0d65d4cdafc165484dfc8d1c5af4ac1cb7453fd7 10-Nov-2013 Mallikarjuna GB <gbmalli@codeaurora.org> AVRCP: Proper handling of Fragmented AVCTP packet

- AVCTP : Allocate bigger buffer for reassembly
- AVRCP : Handle getelimentattr to eliminate duplicates
and invalid attributes, this also fixes BOF.

Change-Id: I99f6e0fc4dc0cc0fac8854a8ee8671249d67f745
CRs-Fixed: 576831
/system/bt/btif/src/btif_rc.c
f8027005333c88a2f097cfd70d15c3d54c7764ae 12-Mar-2015 Chris Manton <cmanton@google.com> Demote, cleanup and extend observed logging
/system/bt/btif/src/btif_rc.c
794f3b5f126fffc3dd1129a710187591348bbf23 01-Oct-2014 Chris Manton <cmanton@google.com> Removal of bd.[c|h]

Consolidate legacy types into bt_types.h
/system/bt/btif/src/btif_rc.c
f1c764fab01c929f71e185b97433bf40938026d3 24-Feb-2015 Sharvil Nanavati <sharvil@google.com> Make build more strict by adding more warning flags.

This change introduces -Wunused-but-set-variable to help catch
programming errors. It also undefines NDEBUG so assertions are
fatal and defines LOG_NDEBUG=1 to suppress LOGV.
/system/bt/btif/src/btif_rc.c
c7503db23f91676b2df732becb9579d5ccdcc7a7 24-Jan-2015 Ian Coolidge <icoolidge@google.com> Fix omitted libc includes.

Change-Id: I72c08984aeef60e4833e600b4351759b9687a014
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
afa6e1abbedaad8fe854b0f43999b8aeb801af91 28-Jun-2014 Matthew Xie <mattx@google.com> resolved conflicts for merge of e8c3d75b to master

Change-Id: I78ef69c4d54a36243620ae14296d3507e3339567
93912473fde12ab5ab4b1be8774bbf43d47c7ddc 26-Jun-2014 Mike Lockwood <lockwood@google.com> Merge some missing pieces of AVRCP controller support from klp-wireless-dev

Change-Id: I1dc99496a6ed0e7d13cab9d7c95972d32ad88769
/system/bt/btif/src/btif_rc.c
e8c3d75b75493911ebf0f99c83676359657178f7 04-May-2014 Sharvil Nanavati <sharvil@google.com> Logging cleanup: BTIF and APPL.

Change-Id: I5b1214642bbb4b9aecc0fd2c899a6ec2c9793286
/system/bt/btif/src/btif_rc.c
4ad470e33021be4246ae539e1bcb7a346dbb4405 03-Jun-2014 Mike Lockwood <lockwood@google.com> Move AVRCP controller support to separate HAL interface

Change-Id: Ib7dcd7b90f85cf3b25148e2929d8921c6db37aa2
/system/bt/btif/src/btif_rc.c
3a1ca50d0def4078a0db82bcdeecfe408ca4af64 03-Jun-2014 Mike Lockwood <lockwood@google.com> Move AVRCP controller support to separate HAL interface

Change-Id: Ib7dcd7b90f85cf3b25148e2929d8921c6db37aa2
/system/bt/btif/src/btif_rc.c
44c6f8d6c7cb3929a5b49e5d0ef8c471798f552f 07-Feb-2014 Hemant Gupta <hemantg@codeaurora.org> [2/4] Add Support for AVRCP Controller Feature

- Provide support for AVRCP Controller CAT 1 and CAT 2
Passthrough commands.

Change-Id: Ia3ca08c1139d9a98b86919b51d7480e0245c35f3
/system/bt/btif/src/btif_rc.c
68c53ded6523113ddcc1932fa5bcb7d378b12209 13-Feb-2014 Nitin Srivastava <nitinsr@codeaurora.org> Bluetooth: Clear Notification array on AVRCP disconnect

DUT does not clear previous AVRCP notification registration
on AVCTP disconnect hence DUT sends response even when remote
device hasn't registered.
Changes made to clear notification array and while sending
notification respose check if event is registered.

Change-Id: I610f8ae6381a63236378f179bb2a619ec0c6549e
/system/bt/btif/src/btif_rc.c
ad0b6c784a5684812f828b68fd8b5f952c62a443 13-Feb-2014 Nitin Srivastava <nitinsr@codeaurora.org> Bluetooth: Clear Notification array on AVRCP disconnect

DUT does not clear previous AVRCP notification registration
on AVCTP disconnect hence DUT sends response even when remote
device hasn't registered.
Changes made to clear notification array and while sending
notification respose check if event is registered.

Change-Id: I610f8ae6381a63236378f179bb2a619ec0c6549e
/system/bt/btif/src/btif_rc.c
73e68297292dd901a170bcf6434ed0a10f1ec450 07-Apr-2014 Zhihai Xu <zhihaixu@google.com> flounder64: bluetooth: Adjust volume level on BT HS and DUT side

MW600 Bluetooth address is "58:17:0c:e8:b0:7a". It is not included in
AVRCP profile white list. So it can't support absolute volume. We need
to whitelist it by device name "MW600" instead device address method.

Signed-off-by: Thomas.TT_Lin <Thomas.TT_Lin@htc.com>
Change-Id: I41b27fbab13dcf9d0005e8d5ae25ffb95eb546d4
/system/bt/btif/src/btif_rc.c
d2ccbbb73c7851d2fa28dc212d2fffc0ad4e5d50 13-Apr-2014 Sharvil Nanavati <sharvil@google.com> Remove executable bit on source files.

Change-Id: Id456478aea626f57fed3479346e8fb4dbd0fafa6
/system/bt/btif/src/btif_rc.c
c9fbcde6d2077ee03dc497824cd98e4d782f7cea 07-Apr-2014 Thomas.TT_Lin <Thomas.TT_Lin@htc.com> flounder64: bluetooth: Adjust volume level on BT HS and DUT side

MW600 Bluetooth address is "58:17:0c:e8:b0:7a". It is not included in
AVRCP profile white list. So it can't support absolute volume. We need
to whitelist it by device name "MW600" instead device address method.

Signed-off-by: Thomas.TT_Lin <Thomas.TT_Lin@htc.com>
Change-Id: I41b27fbab13dcf9d0005e8d5ae25ffb95eb546d4
/system/bt/btif/src/btif_rc.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/btif/src/btif_rc.c
7850a939f3c33a0bada9b9e2cd335189614a5ef9 06-Nov-2013 Matthew Xie <mattx@google.com> whitelist well tested devices for absolute volume feature

We are blacklisting all the devices that are not in whitelist
instead of blacklisting known bad devices.
bug 11124170

Change-Id: I044970df611d2a800d7698d4a63331644ab107ce
/system/bt/btif/src/btif_rc.c
a7ae4a15e954fe143326d4f869f8dac8e76ee8ce 24-Oct-2013 Matthew Xie <mattx@google.com> Blacklist Devices that donot handle absolute volume well

Use vendor prefix address, include hbs730 headset, passat carkit
bug 11124170

Change-Id: I80f634366ce332c55581d7b1e36641e5ce3ad346
/system/bt/btif/src/btif_rc.c
247c68fe6eee3660cbdcf4509195fe735ae25573 01-Aug-2013 Satya Calloji <satyac@broadcom.com> Add support for AbsoluteVolume

Add support for AbsoluteVolume in BTIF
bug 9595622

Change-Id: I11b707f6ab50d31bd11e879b0ebe5ad5bac54ad9

Conflicts:
btif/src/btif_rc.c
/system/bt/btif/src/btif_rc.c
98497a520010fc996a8ce490665cac6c1439dd2d 25-Jun-2013 John Du <johnldu@google.com> Add support for ff/rew

Change-Id: I017a7ddc9f7255d84ad8bf3284fefc1b7040900f
(cherry picked from commit 342bdf540d8c183d14ec5fb436b73cd979df3a8f)
/system/bt/btif/src/btif_rc.c
b88fc6cb5636c4af17077502fe3313ffb32d93ee 02-Apr-2013 Ravi Nagarajan <nravi@broadcom.com> Add support for PLAY_POS_CHANGED

Enable PLAY_POS_CHANGED support in get capabilities

Change-Id: I8f41209fe5be5345826136f14434488524e7b1bb
/system/bt/btif/src/btif_rc.c
841e5b5092bcdbc1acffd6cf7255ec423fe15fdb 22-Mar-2013 Ravi Nagarajan <nravi@broadcom.com> Reject element attribute request if count is 0xff

Updates from review. BTRC_MAX_ELEM_ATTR_SIZE set back to 7 and handled
invalid attribute count (oxff) in BTIF

Change-Id: Id2610c7882c4bc8aca04491d81b9b2c35f0682d0
/system/bt/btif/src/btif_rc.c
081d6e548bed5a91c0ba9abda518c06a1b0ba7f5 30-Mar-2013 Zhihai Xu <zhihaixu@google.com> need send reject response to unsupported Avrcp 1.3 command

Without this change, some carkit will stuch waiting for response and crash.

Change-Id: I710f69077e400830a9cedd540bef5d51dc468272
/system/bt/btif/src/btif_rc.c
9adddf4965e9ddb01e339b934c343fcbd842a977 06-Mar-2013 Ravi Nagarajan <nravi@broadcom.com> Initial version of Stack for AVRCP 1.3

BTIF and stack changes for supporting AVRCP 1.3

Change-Id: Id02eb7b6a385683cedc41c62b6f829f5d7620bd4
/system/bt/btif/src/btif_rc.c
5738f83aeb59361a0a2eda2460113f6dc9194271 13-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf

Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d
/system/bt/btif/src/btif_rc.c