OSDN Git Service

android-x86/system-bt.git
7 years agoFix formatting of config files
Myles Watson [Fri, 2 Dec 2016 20:44:57 +0000 (12:44 -0800)]
Fix formatting of config files

Revert "Apply clang-format to the rest of the tree" for
 .conf files

Change-Id: If3f4a06bd8ebceedf1911b77afb29605fbeb92ef
Test: mma -j32

7 years agoRemove coverity comments
Myles Watson [Fri, 2 Dec 2016 01:16:23 +0000 (17:16 -0800)]
Remove coverity comments

We aren't actively using coverity, and these may be out
of date.

Test: mma -j32
Change-Id: I3ce75c561dae57019597db85a383a8e434803926

7 years agoApply clang-format to the rest of the tree
Myles Watson [Tue, 29 Nov 2016 00:44:40 +0000 (16:44 -0800)]
Apply clang-format to the rest of the tree

find * | grep "\.[ch]" | xargs clang-format --style=file -i

Test: mma -j32
Change-Id: I6fcc9862bb7bc07c2a367ca58fef2b3cd27a6f05

7 years agoReformat long comments before clang-format
Myles Watson [Tue, 29 Nov 2016 00:41:53 +0000 (16:41 -0800)]
Reformat long comments before clang-format

Test: mma -j32
Change-Id: I86a2a4af9dcd22d675ca1f764bb2c9623d63edcc

7 years agoAdd a mechanism for Audio Feeding Parameters negotiation
Pavlin Radoslavov [Tue, 22 Nov 2016 19:42:11 +0000 (11:42 -0800)]
Add a mechanism for Audio Feeding Parameters negotiation

Previously, the Audio Feeding Parameters between the Media Framework
and A2DP were hard-coded: 44.1 KHz sample rate, 16-bits per sample, Stereo.
Now the Media Framework queries A2DP, and uses the returned values.

Bug: b/30958229
Test: Manual testing: A2DP streaming to headphones. TestTracker/68727
Change-Id: I70b90d2961ceb9efcd7021d2e12c240fe531ee1c

7 years agoMerge "Add dependency installation files for x86_64"
Treehugger Robot [Fri, 2 Dec 2016 01:49:32 +0000 (01:49 +0000)]
Merge "Add dependency installation files for x86_64"

7 years agoA2DP Codec related cleanup
Pavlin Radoslavov [Sat, 5 Nov 2016 00:18:51 +0000 (17:18 -0700)]
A2DP Codec related cleanup

* Add new A2DP API and the corresponding unit tests:
  - A2DP_InitSource2SinkCodec()
  - A2DP_SourceCodecSepIndex()
  - A2DP_GetTrackBitsPerSample()
* Use the new API to simplify the codec selection and setup
* Rename A2DP_BldSbcMplHdr() to A2DP_BuildMediaPayloadHeaderSbc()
* Remove the following APIs, because they are not needed anymore:
  - A2DP_BuildSinkConfig()
  - A2DP_CodecConfigMatchesCapabilities()
  - A2DP_SetSourceCodec()
  - A2DP_CodecRequiresReconfig()
  - A2DP_IsSourceCodecSupported()
* Remove the following generic APIs, and keep only the SBC-specific APIs.
  The information returned by those functions is SBC-specific, and doesn't
  apply to other codecs:
  - A2DP_GetNumberOfSubbands()
  - A2DP_GetNumberOfBlocks()
  - A2DP_GetAllocationMethodCode()
  - A2DP_GetChannelModeCode()
  - A2DP_GetSamplingFrequencyCode()
  - A2DP_GetMinBitpool()
  - A2DP_GetMaxBitpool()
* Rename:
  A2DP_GetTrackFrequency() -> A2DP_GetTrackSampleRate()
  tA2DP_FEEDING_PARAMS.sampling_freq -> sample_rate
  tA2DP_FEEDING_PARAMS.num_channel -> channel_count
  tA2DP_FEEDING_PARAMS.bit_per_sample -> bits_per_sample
* Remove btif_a2dp_source_encoder_update(), tA2DP_ENCODER_UPDATE_PARAMS
  and associated events and processing mechanism, because they are not
  needed anymore.
* Remove tA2DP_ENCODER_INTERFACE.encoder_update, because it is not
  used anymore.
  Now it is superceded by tA2DP_ENCODER_INTERFACE.encoder_init.
* Fix a bug inside bta_av_api_register() when initializing
  the stream control block.
* Refactor bta_av_co_audio_getconfig() and bta_av_co_audio_setconfig()
* Remove tBTA_AV_CO_CB.codec_config_setconfig field, because it is not
  needed anymore.
* Remove unused arguments when opening/closing audio stream
* Remove #ifdef BTA_AV_DEBUG guards: BTA_AV_DEBUG is always TRUE
* Remove SBC Mono -> Stereo hack

Test: Manual testing: A2DP streaming to headphones. TestTracker/68727
Change-Id: Ie0b209f7ad6c21c2c6d8d2e6277b86dfa63388c6

7 years agoAdd dependency installation files for x86_64
Jack He [Wed, 30 Nov 2016 01:46:15 +0000 (17:46 -0800)]
Add dependency installation files for x86_64

* The installation script installs the necessary dependencies based on
  host OS version on Ubuntu OS
* clang toolchain BUILD.gn will only use clang-3.5 or above
* Update documentation

Test: gn gen out/Default; ninja -C out/Default
Change-Id: Ibc732ebc68009af25e9a911a724a888e008d45ac

7 years agoFix asterisks in block quotes
Myles Watson [Wed, 23 Nov 2016 22:49:54 +0000 (14:49 -0800)]
Fix asterisks in block quotes

Remove double asterisks from block quotes.

git grep -lP '^[*][*]'  | xargs  sed 's/^[*][*]/ \*/' -i

Fix asterisk line lengths

 git grep -l '^[ /][*]\{79,\}[*/]' | \
   xargs sed -i s,"^\([ /]\)[*]\([*]\{78\}\)[*]*\([*/]\)","\1\2\3",

Test: mma -j32
Change-Id: Ie3fd375ac2f804cb0f53bf1314a005e85973b3d7

7 years agoembdrv: Fix include ordering before clang-format
Myles Watson [Tue, 29 Nov 2016 17:40:47 +0000 (09:40 -0800)]
embdrv: Fix include ordering before clang-format

clang-format re-orders #include statements.  Fix the includes
so that order is less important.

Test: mma -j32

Change-Id: Ia548c2c7d5669e0e759b3c5e7fa12a1ec48cc03e

7 years agoRemove more usages of UINT_TO_PTR macro
Ajay Panicker [Tue, 22 Nov 2016 21:28:43 +0000 (13:28 -0800)]
Remove more usages of UINT_TO_PTR macro

Bug: 32995283
Test: Sanity tests with a carkit and a headset
Change-Id: Ie74ece4814499f771eb1f229558de7df5c726180

7 years agoMerge "Add a missing error check when processing AVDT_RECONFIG_CFM_EVT event"
Treehugger Robot [Wed, 30 Nov 2016 19:49:44 +0000 (19:49 +0000)]
Merge "Add a missing error check when processing AVDT_RECONFIG_CFM_EVT event"

7 years agoAdd a missing error check when processing AVDT_RECONFIG_CFM_EVT event
Pavlin Radoslavov [Mon, 28 Nov 2016 22:32:40 +0000 (14:32 -0800)]
Add a missing error check when processing AVDT_RECONFIG_CFM_EVT event

Bug: 33114181
Test: Code compilation
Change-Id: Ic2d432b651ea80af2b0ff40fdb61221b0fc31f82

7 years agoRun clang-format on every commit
Myles Watson [Tue, 29 Nov 2016 18:58:00 +0000 (10:58 -0800)]
Run clang-format on every commit

Test: repo upload --cbr .
Change-Id: Ib4bea4649320db8890399dda8a285bab69f4b482

7 years agoMerge "AVRCP: Fix get metadata attribute responses"
Treehugger Robot [Wed, 30 Nov 2016 01:31:20 +0000 (01:31 +0000)]
Merge "AVRCP: Fix get metadata attribute responses"

7 years agoMerge "Add Bluetooth device address parameter to HF Client APIs"
Sanket Agarwal [Wed, 30 Nov 2016 01:23:42 +0000 (01:23 +0000)]
Merge "Add Bluetooth device address parameter to HF Client APIs"

7 years agoAdd Bluetooth device address parameter to HF Client APIs
Sanket Agarwal [Mon, 28 Nov 2016 23:46:29 +0000 (15:46 -0800)]
Add Bluetooth device address parameter to HF Client APIs

Bug: 30984220
Test: SL4A tests for HFP

Change-Id: I62cb69b4296e1b5bdf951ccfafc55433f1ea0a1a

7 years agoCleanup GATT cache when remote device is disconnected
Jakub Pawlowski [Tue, 29 Nov 2016 19:45:09 +0000 (11:45 -0800)]
Cleanup GATT cache when remote device is disconnected

According to Bluetooth spec, GATT cache should not be persisted between
reconnections for unbonded devices. Bonded devices store the cache on
the disk and will read it on reconnection.

Bug: 33123476
Test: sl4a GattReadTest
Change-Id: If2ca53c7b22a346e7236514ea7b461695c923f74

7 years agoAVRCP: Fix get metadata attribute responses
Jack He [Sun, 20 Nov 2016 01:08:28 +0000 (17:08 -0800)]
AVRCP: Fix get metadata attribute responses

* Add checks for remaining buffer capacity to handle long metadata
* Change the attribute number max to AVRC_MAX_NUM_MEDIA_ATTR_ID
* Consolidate attribute value filling code between GetElementAttributes
  and GetItemAttributes
* Check requested media attribute IDs before building response

Bug: 3240725033001066
Test: manual - connect to carkit and play music, see metadata and hear audio
Change-Id: I8f0c47148be35100202398c754861abb1fb9def1

7 years agoreadability fix: No assigns in if conditionals
Marie Janssen [Tue, 22 Nov 2016 23:01:42 +0000 (15:01 -0800)]
readability fix: No assigns in if conditionals

Coccinelle-assisted:
@@
variable i;
expression E;
statement S1, S2;
@@

+ i = E;
  if (
(
-   (i = E)
+   i
    != ...
|
-   (i = E)
+   i
    == ...
|
-   (i = E)
+   i
    < ...
|
-   (i = E)
+   i
    > ...
|
-   (i = E)
+   i
    <= ...
|
-   (i = E)
+   i
    >= ...
|
-   (i = E)
+   i
)
    ) S1 else S2

for file in $(find . -name "*.cc"); do
  spatch --sp no-if-assigns.cocci --in-place $file
done

clang-format --style=file -i bta/**/*.cc

Test: mma -j37 and basic sanity testing on angler, sailfish

Change-Id: I41a2964afac347c24e13869b6c172e321e646091

7 years agoMerge "Fix an inappropriate NULL-pointer check in handle_rc_passthrough_cmd"
Marie Janssen [Mon, 28 Nov 2016 16:51:08 +0000 (16:51 +0000)]
Merge "Fix an inappropriate NULL-pointer check in handle_rc_passthrough_cmd"

7 years agoMerge "Fix x86_64 compilation on Ubuntu 14.04"
Treehugger Robot [Thu, 24 Nov 2016 05:54:57 +0000 (05:54 +0000)]
Merge "Fix x86_64 compilation on Ubuntu 14.04"

7 years agoMerge changes I9ebb32f0,I00393e2b
Treehugger Robot [Thu, 24 Nov 2016 03:24:51 +0000 (03:24 +0000)]
Merge changes I9ebb32f0,I00393e2b

* changes:
  Fix formatting after removing defines
  Remove BTA_GATT_INCLUDED

7 years agoFix x86_64 compilation on Ubuntu 14.04
Jack He [Tue, 22 Nov 2016 20:39:52 +0000 (12:39 -0800)]
Fix x86_64 compilation on Ubuntu 14.04

* Add necessary includes in bt_trace.h
* Add toolchain specific configs
* Add libc++ import for clang
* Add libc++abi include for clang
* Add ipc_handler_linux.cc in service/BUILD.gn
* Use shared_mutex when _LIBCPP_VERSION < 3500
* Updated the build instructions

Test: ninja -C out/Default
Change-Id: I362ebf33f62910be817339cc6bdc62830f57db30

7 years agoFix an inappropriate NULL-pointer check in handle_rc_passthrough_cmd
liuchao [Wed, 23 Nov 2016 08:21:01 +0000 (16:21 +0800)]
Fix an inappropriate NULL-pointer check in handle_rc_passthrough_cmd

This fixes a potential NULL-pointer access in case p_remote_cmd is NULL

Test: mm -j 8
Change-Id: I06ae9afb9ae161296828e06b2c00d921189bee5c

7 years agoFix a unit test failure related to SBC maxbitpool testing
Pavlin Radoslavov [Thu, 24 Nov 2016 00:36:14 +0000 (16:36 -0800)]
Fix a unit test failure related to SBC maxbitpool testing

The unit test failure was introduced / overlooked by an earlier CL.

Test: running "test/run_unit_tests.sh net_test_stack"
Change-Id: I40824a903a0dbef3bdab965ef5c390a8939cc5ee

7 years agoFix formatting after removing defines
Myles Watson [Wed, 16 Nov 2016 00:33:22 +0000 (16:33 -0800)]
Fix formatting after removing defines

clang-format -i --style=file bta/*/* btif/*/* include/*

Test: mma -j32
Change-Id: I9ebb32f0cc5bd24a7cb2ae25699999aab5036b13

7 years agoRemove SMP_INCLUDED define
Myles Watson [Tue, 15 Nov 2016 00:45:15 +0000 (16:45 -0800)]
Remove SMP_INCLUDED define

Test: Connect to a BLE Keyboard
Change-Id: I785692cb61f4ca5ccccab7424aa03f50c54523c9

7 years agoRemove BTA_GATT_INCLUDED
Myles Watson [Fri, 18 Nov 2016 16:42:23 +0000 (08:42 -0800)]
Remove BTA_GATT_INCLUDED

Test: Connect to a BLE Keyboard
Change-Id: I00393e2bf09fb65533e953896563e69aab5a22dc

7 years agoRemove BLE_INCLUDED define
Myles Watson [Mon, 14 Nov 2016 20:05:37 +0000 (12:05 -0800)]
Remove BLE_INCLUDED define

Test: Connect to a BLE Keyboard
Change-Id: I5f8f4017c90c3c404004632fd10e6c2b93bd7783

7 years agoMerge "Audio pops due to queue not flushed when focus taken off"
Sanket Agarwal [Wed, 23 Nov 2016 02:11:36 +0000 (02:11 +0000)]
Merge "Audio pops due to queue not flushed when focus taken off"

7 years agoMerge "Report proper advertiser status on registration error"
Treehugger Robot [Wed, 23 Nov 2016 01:51:51 +0000 (01:51 +0000)]
Merge "Report proper advertiser status on registration error"

7 years agobtif: DRY up command functions
Marie Janssen [Wed, 16 Nov 2016 17:58:22 +0000 (09:58 -0800)]
btif: DRY up command functions

also:
clang-format -i --style=file btif/src/btif_rc.cc

Test: sl4a AvrcpController tests
Change-Id: I95f7e6922c096e2460ecdeafad162515f5600d97

7 years agoAudio pops due to queue not flushed when focus taken off
Sanket Agarwal [Tue, 22 Nov 2016 23:00:25 +0000 (15:00 -0800)]
Audio pops due to queue not flushed when focus taken off

Test: (Manual) The stutter after music is resumed is gone

Bug: b/32296397

Change-Id: Id188c56a196c2ece13510488e6bcfb717bcc610c

7 years agoReport proper advertiser status on registration error
Jakub Pawlowski [Tue, 22 Nov 2016 20:51:20 +0000 (12:51 -0800)]
Report proper advertiser status on registration error

When advertiser is not started because too many advertisers are
registered, return proper error code.

Bug: 30622771
Test: sl4a ConcurrentBleAdvertisingTest
Change-Id: Ie8a94b964170edbbf1c56f39b03ad98f745a4861

7 years agoRemove some usages of UINT_TO_PTR macro
Ajay Panicker [Mon, 21 Nov 2016 21:16:48 +0000 (13:16 -0800)]
Remove some usages of UINT_TO_PTR macro

Bug: 32995283
Test: Sanity test with various devices
Change-Id: I20a0b1571c044170ba5a8792d8e990a6790cbce2

7 years agoConstant Cleanup: Remove BT_TRACE_VERBOSE
Marie Janssen [Tue, 22 Nov 2016 15:50:15 +0000 (07:50 -0800)]
Constant Cleanup: Remove BT_TRACE_VERBOSE

BT_TRACE_VERBOSE turned on constants-as-strings in
logs in many parts of the stack, which is preferable
to obscure numbers.

Test: m -j37, check logspam is not worse than normal on a device
Change-Id: I1d24f1c1337290a8a2bcd9a0d937c9e0f1f1c611

7 years agoMove startAdvertising() logic into native code (2/3)
Jakub Pawlowski [Thu, 17 Nov 2016 21:27:28 +0000 (13:27 -0800)]
Move startAdvertising() logic into native code (2/3)

AdvertiseManager.startAdvertising() was implemented in Java layer for
historical reasons. Now that we have nice native callbacks and tests,
it can be moved into native code, where it will be shared between
Android daemon and bluetoothtbd.

Bug: 30622771
Test: native tests added to cover startAdvertising
Change-Id: Idf5d3c53b6ad21d8c7e239b5b150b88e073bb709

7 years agoMerge "Do not reject valid SBC codec parameters"
Andre Eisenbach [Fri, 18 Nov 2016 19:27:44 +0000 (19:27 +0000)]
Merge "Do not reject valid SBC codec parameters"

7 years agoDo not reject valid SBC codec parameters
Andre Eisenbach [Fri, 18 Nov 2016 18:03:46 +0000 (10:03 -0800)]
Do not reject valid SBC codec parameters

Fixes logic in A2DP_CodecInfoMatchesCapabilitySbc that could otherwise
reject valid SBC codec parameters, leading to A2DP being disconnected.

Example:
Tesla Model S - min bitpool = 2; max bitpool = 60
Android - min bitpool = 2; max bitpool = 53

Bug: 32688022
Test: Added test to test_a2dp_is_source_codec_supported to cover this bug
Change-Id: If02bab1c47f926f82a636184cf3cbd1edbbe223a

7 years agoAdd BUILD.gn for tinyxml
Jakub Pawlowski [Thu, 17 Nov 2016 19:37:17 +0000 (11:37 -0800)]
Add BUILD.gn for tinyxml

Change-Id: I82d2bb25470d46516e0ab6114bf85cb93f9023ac

7 years agoRevert "Bluetooth: Fix the issue that peer A2DP SNK device can not auto-reconnect."
Andre Eisenbach [Thu, 17 Nov 2016 05:08:20 +0000 (21:08 -0800)]
Revert "Bluetooth: Fix the issue that peer A2DP SNK device can not auto-reconnect."

This reverts commit 5bd9ffbe6fbf22b7072bc1a63e3152a916276ddf.

Despite the original patch intention, it actually causes various remote
devices (tested Android Auto, Logitech Speakerphone, Tesla Model S and
many more) to no connect A2DP (only HFP) in various re-connect
scenarios.

This is due to the fact that the stream end point type is not correctly
determined yet in some of these scenarios causing the AVDT stream to be
closed prematurely and thus the A2DP connection to fail.

Test: manual; various devices
Fixes: 32688022

7 years agoLimit the use of AVRC_ADV_CTRL_INCLUDED define
Ajay Panicker [Wed, 16 Nov 2016 21:47:27 +0000 (13:47 -0800)]
Limit the use of AVRC_ADV_CTRL_INCLUDED define

Use AVRC_ADV_CTRL_INCLUDED just to control features instead of
controlling features and inclusion of functions.

Change-Id: Ifff0d7006c3d8df1d57c79ace19ee60487c2f0a5

7 years agoRemove pointer to integer cast in btif_sock_l2cap to prevent crash on 64 bit systems
Ajay Panicker [Fri, 11 Nov 2016 04:02:24 +0000 (20:02 -0800)]
Remove pointer to integer cast in btif_sock_l2cap to prevent crash on 64 bit systems

Bug: 24400656
Test: Previously crashed Bluetooth, does not crash after patch
Change-Id: Ia381abca72e46d369a0de1749e42d1b6273a321a

7 years agobtif: Remove AVRC_CTRL_INCLUDED ifdefs
Marie Janssen [Tue, 15 Nov 2016 22:54:16 +0000 (14:54 -0800)]
btif: Remove AVRC_CTRL_INCLUDED ifdefs

AVRCP controller side support is always included now.

Test: croot system/bt && mma -j37

Change-Id: I22260b4f123b352f70cbab54a19b5f8f5f171825

7 years agobtif: Remove unused uinput interface code
Marie Janssen [Tue, 15 Nov 2016 16:24:24 +0000 (08:24 -0800)]
btif: Remove unused uinput interface code

uinput isn't used anymore; all media commands go through the HAL

Test: croot system/bt && mma -j37

Change-Id: I83ab133794683a26e250ea10927fa95b2e2cb28a

7 years agoMerge "Fix a NULL-pointer check order reverse in GATTC_ConfigureMTU"
Treehugger Robot [Tue, 15 Nov 2016 21:21:15 +0000 (21:21 +0000)]
Merge "Fix a NULL-pointer check order reverse in GATTC_ConfigureMTU"

7 years agoFix a NULL-pointer check order reverse in GATTC_ConfigureMTU
liuchao [Mon, 14 Nov 2016 08:13:10 +0000 (16:13 +0800)]
Fix a NULL-pointer check order reverse in GATTC_ConfigureMTU

This fixes a potential NULL-pointer check order reverse
in case failed to get TCB using the TCB index

Test: mm -j 8
Change-Id: I8fcc168d7d077f8df7c7abb9c325c5168fa8cd39

7 years agoNULL-pointer access before check in BTM_SetBleDataLength
liuchao [Mon, 14 Nov 2016 03:13:12 +0000 (11:13 +0800)]
NULL-pointer access before check in BTM_SetBleDataLength

This fixes a potential NULL-pointer access in case
the ACL DB for the requested BDA is not found.

Test: mm -j 8

Change-Id: I86ab66730aa0d9a143ddde851bd33a05a405bb7f

7 years agoMerge "Copying of pointer with incorrect size"
Treehugger Robot [Tue, 15 Nov 2016 02:18:44 +0000 (02:18 +0000)]
Merge "Copying of pointer with incorrect size"

7 years agoCopying of pointer with incorrect size
Sanket Agarwal [Tue, 8 Nov 2016 22:23:22 +0000 (14:23 -0800)]
Copying of pointer with incorrect size

We are passing the value in pointer (UINT_TO_PTR) hence no copy is
required for the context transfer (simply use the UINT value in the
event field instead)

Change-Id: I43625c3a4d68cd8cbadd51b1fccc4138583082b6

7 years agoRemove unused GATT_Listen
Jakub Pawlowski [Mon, 14 Nov 2016 23:57:42 +0000 (15:57 -0800)]
Remove unused GATT_Listen

Bug: 30622771
Test: still builds
Change-Id: I4003a1241e611c9c1f2a21090ea3ba7530b0643a

7 years agoReenable advertising instance after an LE advertising state change
Jakub Pawlowski [Mon, 14 Nov 2016 19:20:52 +0000 (11:20 -0800)]
Reenable advertising instance after an LE advertising state change

Ensure BleAdvertisingManager::OnAdvertisingStateChanged() is called
after an advertising state change to re-enable advertising after
a connection.

This patch also fixes the registration test, which was broken since
one more advertising instance was freed for general usage.

Test: net_test_stack_multi_adv native test
Change-Id: I76887d98cb3ec386ebc0f7fad95170b8c18b9116

7 years agoRemove useless NULL-pointer check code in l2cap_client_new
liuchao [Fri, 11 Nov 2016 07:51:39 +0000 (15:51 +0800)]
Remove useless NULL-pointer check code in l2cap_client_new

Remove the useless "error:" label and NULL-pointer check block

Test: mm -j 8

Change-Id: I218f5f1e2741a49a0fe9bec749dea2484a1df2eb

7 years agoAVRCP: unify Get{Element,Item}Attributes response.
Marie Janssen [Fri, 11 Nov 2016 17:07:04 +0000 (09:07 -0800)]
AVRCP: unify Get{Element,Item}Attributes response.

GetElementAttributes response and GetItemAttributes response share the
same format and require the same checks for length.

Test: play media on carkit, see media. especially with long items.
Bug: 32407250
Bug: 30571638
Change-Id: I8623e7d662f7a39112b7527b6f5ab63c5e32379c

7 years agoMerge "Fix how LE connection parameters are set after connecting"
Treehugger Robot [Sat, 12 Nov 2016 00:52:50 +0000 (00:52 +0000)]
Merge "Fix how LE connection parameters are set after connecting"

7 years agoUnify advertising API (1/3)
Jakub Pawlowski [Thu, 3 Nov 2016 22:41:50 +0000 (15:41 -0700)]
Unify advertising API (1/3)

This patch unifies advertising API. On startup, if VSC multi advertising
is avaliable, it will be used, otherwise
BleAdvertiserLegacyHciInterfaceImpl will be used, which provides one
advertising instance.

Test: sl4a tests are passing, all proper tests updated accordingly
Change-Id: I73753962e3a33a980e8a9a1174c8d88611a47e6b

7 years agoAlways use big endian for keeping service UUID
Jakub Pawlowski [Wed, 9 Nov 2016 01:23:11 +0000 (17:23 -0800)]
Always use big endian for keeping service UUID

When adding services to GATT database, applications should always provide
it in big endian format.

Bug: 32750783
Change-Id: I5264357bdbb6bab453b63baae6563cde86d20bac

7 years agoFix how LE connection parameters are set after connecting
Jakub Pawlowski [Fri, 11 Nov 2016 21:35:18 +0000 (13:35 -0800)]
Fix how LE connection parameters are set after connecting

This patch fixes bug introduced in commit
95075be6e95e9021c1ddd834bcf9e3771c57c217
which would cause unnecessary connection parameter update requests
to be send. It should be sent immediately after connecting only.

Bug: 32563079
Bug: 28435172
Change-Id: Ibd9301a990f12a94e8043b9c29a480f068251ba8

7 years agoHandling Authentication Failure From the lower layer
Matadeen Mishra [Wed, 23 Sep 2015 16:56:46 +0000 (22:26 +0530)]
Handling Authentication Failure From the lower layer

Use case: DUT unable to do connect with all devices in
Multipairing case.

Steps:
1. pair with HS
2. disconnect HS.
3. reconnect HS from DUT.

Failure: Authentication failure occurred due to LMP
transaction collision DUT not deleting link key which
lead to unable to connect to device.

Root Cause: Not posting the Authentication failure
event to application layer, while removing the link-key.

Fix: Post the Authentication failure event to application
and removing the link-key.

Test: code compilation.

Change-Id: I079d8ce89c1fea66f0624127514cec8405bfdd3d

7 years agoMove callback to dispatch thread
Ajay Panicker [Wed, 9 Nov 2016 03:25:43 +0000 (19:25 -0800)]
Move callback to dispatch thread

Change the thread that the timeout posts a connection request event to
so that the state machine handles calling the callback on the correct
thread to prevent a JNI crash.

Bug: 32754737
Test: Manually paired a device that normally crashes phone
Change-Id: I2c3384feaa404cc583e81b2df994b7cbd079d25d

7 years agoFix incorrect check for empty out-of-band pairing data
Jakub Pawlowski [Thu, 10 Nov 2016 23:56:46 +0000 (15:56 -0800)]
Fix incorrect check for empty out-of-band pairing data

Bug: 32780409
Test: try pairing with nRF52DK using OOB LE SC
Change-Id: I3c165843bb76c372b76bdc18a7d9226345d39037

7 years agoMerge "device: Fix multi-line comments"
Treehugger Robot [Thu, 10 Nov 2016 21:15:32 +0000 (21:15 +0000)]
Merge "device: Fix multi-line comments"

7 years agoBLE OOB Pairing - parse address type (1/5)
Jakub Pawlowski [Thu, 10 Nov 2016 00:39:10 +0000 (16:39 -0800)]
BLE OOB Pairing - parse address type (1/5)

When address type is not parsed, creating bond to devices not using
random address is impossible.

Bug: 32780409
Test: try pairing with nRF52DK using random address
Change-Id: I95c4ebc7bd03cd1b895c9f17deef2e57d8b57d2a

7 years agodevice: Fix multi-line comments
Myles Watson [Wed, 9 Nov 2016 18:27:00 +0000 (10:27 -0800)]
device: Fix multi-line comments

Test: mma -j32
Change-Id: I1df0e71cba73cfde0d973498698c7d6fa017e14a

7 years agodevice: Apply clang-format
Myles Watson [Wed, 9 Nov 2016 18:20:44 +0000 (10:20 -0800)]
device: Apply clang-format

clang-format -i --style=file device/include/* \
  device/src/* device/test/*

Test: mma -j32
Change-Id: I1a0f9e1cd838c025fca487347358cc0079265004

7 years agobta: Fix comment formatting after clang-format
Myles Watson [Wed, 9 Nov 2016 22:25:23 +0000 (14:25 -0800)]
bta: Fix comment formatting after clang-format

Test: mma -j32
Change-Id: Ic945ac421b1918527105c59674eda89afd3d4126

7 years agobta: Apply clang-format
Myles Watson [Wed, 9 Nov 2016 21:17:43 +0000 (13:17 -0800)]
bta: Apply clang-format

clang-format -i --style=file bta/*/*

(twice)

Test: mma -j32
Change-Id: Ib118b1dfb6a34f9a5bfe153d65841e9041165264

7 years agobta: Prepare include statements for clang-format
Myles Watson [Wed, 9 Nov 2016 21:04:33 +0000 (13:04 -0800)]
bta: Prepare include statements for clang-format

bta: Separate includes of different types

Include "bta_sys.h" in bta/dm/bta_dm_int.h

Test: mma -j32
Change-Id: I292bc6518230201e1175937b9c6766c19709c9d5

7 years agobta: Remove double asterisks in comments
Myles Watson [Wed, 9 Nov 2016 18:40:23 +0000 (10:40 -0800)]
bta: Remove double asterisks in comments

Double asterisks at the beginning of the line
  sed -i s,"^[*][*]"," *", bta/*/*

Double asterisks after a space
  sed -i s,"^ [*][*]\([^*]\)"," *\1", bta/*/*
  sed -i s,"^ [*][*]$"," *", bta/*/*

Test: mma -j32
Change-Id: Ib83b802c7000176683b4e7f24d1255b3c2c6c01c

7 years agoinclude: Apply clang-format
Myles Watson [Wed, 9 Nov 2016 17:47:42 +0000 (09:47 -0800)]
include: Apply clang-format

clang-format -i --style=file include/*

Test: mma -j32
Change-Id: Ibfb31af3fa82cfd6021fdc3203381b91e57bb71e

7 years agoinclude: Fix comment formatting
Myles Watson [Wed, 9 Nov 2016 17:41:48 +0000 (09:41 -0800)]
include: Fix comment formatting

In preparation for clang-format, fix a few comments that
would have been mangled.

Test: mma -j32
Change-Id: I7194818e93432f8bad4d7c114a93025e217aa694

7 years agobta: Remove executable permissions from code
Myles Watson [Tue, 8 Nov 2016 22:44:50 +0000 (14:44 -0800)]
bta: Remove executable permissions from code

Test: mma -j32
Change-Id: I2d0df65001c82b37f001ba4697e58c206f2a4b9c

7 years agoRevert "Replace pthread_mutex with std::mutex"
Pavlin Radoslavov [Tue, 8 Nov 2016 00:57:53 +0000 (00:57 +0000)]
Revert "Replace pthread_mutex with std::mutex"

This reverts commit 4b801825bd90b826fb53d51f497aba87d6d00d8c.

Change-Id: I862272c682409778dce356c8cba497ea4b78b14d

7 years agoMerge "AVRCP: Passthrough code cleanup"
Treehugger Robot [Mon, 7 Nov 2016 22:17:54 +0000 (22:17 +0000)]
Merge "AVRCP: Passthrough code cleanup"

7 years agoAVRCP: Passthrough code cleanup
Marie Janssen [Fri, 4 Nov 2016 19:36:14 +0000 (12:36 -0700)]
AVRCP: Passthrough code cleanup

Simplify the code surrounding passthrough commands and responses since
we send them all up to the upper layer now.

Test: basic AVRCP control from a carkit
Change-Id: I1d1e22454471a9948df6602b34ae767d7091197c

7 years agoMask out HFP 1.7 feature bits if peer version is <1.7
Andre Eisenbach [Sat, 5 Nov 2016 00:43:17 +0000 (17:43 -0700)]
Mask out HFP 1.7 feature bits if peer version is <1.7

Bug: 32378402
Test: manual
Change-Id: Iac8684bdfd02b18cce260bedefb829e8f7285361

7 years agoUse libaudioclient instead of libmedia
Marco Nelissen [Thu, 3 Nov 2016 17:34:08 +0000 (10:34 -0700)]
Use libaudioclient instead of libmedia

Test: build/boot

Change-Id: I8aa5cb6c5351d04daf7117cf8bb983da50d4b089
(cherry picked from commit af8b51c4061a5d0c18841195dfa1f4deaf9179b5)

7 years agoMerge "Enable AVRCP Volume commands in TG role"
Treehugger Robot [Fri, 4 Nov 2016 21:22:39 +0000 (21:22 +0000)]
Merge "Enable AVRCP Volume commands in TG role"

7 years agoMerge "Add missing brackets for "if" statement inside BTM_ConfirmReqReply()"
Treehugger Robot [Fri, 4 Nov 2016 21:11:34 +0000 (21:11 +0000)]
Merge "Add missing brackets for "if" statement inside BTM_ConfirmReqReply()"

7 years agoRestart sniff timer on AVDTP signalling channel establishment
Ayan Ghosh [Fri, 6 Dec 2013 11:41:11 +0000 (17:11 +0530)]
Restart sniff timer on AVDTP signalling channel establishment

VolksWagan UHV Preminum takes time to initiate AVDTP media channel
after AVDTP signalling channel is up. If mentioned duration exceeds
7 seconds then ACL link goes into sniff due to which A2dp Connection
fails.

With this change we make sure that when AVDTP signalling channel
is up and media channel is not connected we do not go to sniff,
which is achieved by restarting sniff timer on signalling channel up
so that link does not go to sniff in between ongoing connection.

Change-Id: Ic3f268703067155ffd55a43f320ce199641c6b3f

7 years agoMerge "Replace pthread_mutex with std::mutex"
Treehugger Robot [Fri, 4 Nov 2016 20:35:26 +0000 (20:35 +0000)]
Merge "Replace pthread_mutex with std::mutex"

7 years agoMerge "Enable incoming connection for AVRCP Controller"
Treehugger Robot [Fri, 4 Nov 2016 20:26:04 +0000 (20:26 +0000)]
Merge "Enable incoming connection for AVRCP Controller"

7 years agoMerge "Handle L2CAP disconnection on incomplete connection"
Treehugger Robot [Fri, 4 Nov 2016 19:59:37 +0000 (19:59 +0000)]
Merge "Handle L2CAP disconnection on incomplete connection"

7 years agoEnable AVRCP Volume commands in TG role
Arun Jagadish [Wed, 18 May 2016 10:34:20 +0000 (16:04 +0530)]
Enable AVRCP Volume commands in TG role

Enables the bits for AVRCP Vol UP, VOL Down and
Mute based on ICS document.

Change-Id: I50cdd97812b260812edf4d005c4dd95177d53426
Signed-off-by: Arun Jagadish <arun.jagadish@intel.com>
7 years agoAdd missing brackets for "if" statement inside BTM_ConfirmReqReply()
Jack He [Fri, 4 Nov 2016 18:18:32 +0000 (11:18 -0700)]
Add missing brackets for "if" statement inside BTM_ConfirmReqReply()

This fixes a potential NULL-pointer reference crash in case
btm_find_dev() returns NULL.

Test: mm -j 8
Change-Id: Ic154b872ca84b4e9e8bc57803a4d9ee7c1665204

7 years agoEnable incoming connection for AVRCP Controller
Anubhav Gupta [Tue, 5 May 2015 14:54:47 +0000 (20:24 +0530)]
Enable incoming connection for AVRCP Controller

 - 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.

Test: code compilation
Change-Id: Ied8ac0673288a4423bd41500985366ddc2c567a8

7 years agoMove HDP reg_counter updates to BTIF thread
Matadeen Mishra [Wed, 3 Feb 2016 15:11:26 +0000 (20:41 +0530)]
Move HDP reg_counter updates to BTIF thread

Use case: register/unregister HDP from third party APK

Test Steps:

1.Install Any Test APK which internally registers/unregister the HDP.
2.Run Test APK.
3.Do initialization of Test APK which internally registers the HDP.
4.Force stop the Test APK.
5.And rerun the APK by going back test APK menu.
6.Now it never perform the re-register the HDP as part of initialization.

Root Cause: HDP registration related counter write operations are done
in JNI main thread, and it's been referenced in BTIF thread.Sometimes,
if the context switch to BTIF thread doesn't happen immediately after
counter increment/decrement, it may not un-register the app if the
counter becomes 0.

Fix: Fixed it by making all operations related to counter in BTIF
thread, so that de-registration happens for all HDP APPs.

Test: code compilation.

Change-Id: I71ace68a5f3d39d81b646f5f40c02ce56b9e93f0

7 years agoHandle L2CAP disconnection on incomplete connection
Srinu Jella [Wed, 16 Mar 2016 13:08:55 +0000 (18:38 +0530)]
Handle L2CAP disconnection on incomplete connection

- Sometimes before receiving the connection complete
  event from remote device, upper layer might send a
  disconnection on incomplete L2CAP connection, and expects
  notification of connection failure.

- This change notifies disconnection to upper layers with
  error in case L2CAP disconnection is received on
  incomplete L2CAP channel.

Test: code compilation.

Change-Id: I4ab675329b3d791a3f68101495a6e6d90b13bde4

7 years agoReplace pthread_mutex with std::mutex
Marie Janssen [Thu, 3 Nov 2016 01:31:55 +0000 (18:31 -0700)]
Replace pthread_mutex with std::mutex

In an effort to simplify and reduce errors, replace pthread_mutexes
with std equivalents.

Test: run unit tests & manual sanity checks
Change-Id: Ia6492b0007dca311ebd1579f52b206993b7535fd

7 years agoAdd OWNERS file
Andre Eisenbach [Fri, 4 Nov 2016 16:18:48 +0000 (09:18 -0700)]
Add OWNERS file

Change-Id: Id022d0c98ab3bddc8ceabef148a6c8d1cc4f0bc8

7 years agoMerge "Remove incorrect assert in btm_read_rssi_cb"
Treehugger Robot [Fri, 4 Nov 2016 01:39:27 +0000 (01:39 +0000)]
Merge "Remove incorrect assert in btm_read_rssi_cb"

7 years agoUse standard types instead of OI_INT* and OI_UINT* types
Jakub Pawlowski [Thu, 3 Nov 2016 22:01:28 +0000 (15:01 -0700)]
Use standard types instead of OI_INT* and OI_UINT* types

Test: mma -j45
Change-Id: Ieadd33bfe1be9439e1aeb9a7844260a6e33d8dcd

7 years agoMerge "Replace DWORD with uint32_t"
Treehugger Robot [Fri, 4 Nov 2016 00:31:49 +0000 (00:31 +0000)]
Merge "Replace DWORD with uint32_t"

7 years agoRemove incorrect assert in btm_read_rssi_cb
Andre Eisenbach [Thu, 3 Nov 2016 22:05:22 +0000 (15:05 -0700)]
Remove incorrect assert in btm_read_rssi_cb

|data| may be NULL if the RSSI request times out.
See btm_read_rssi_timeout implementation for details.

Bug: 32587130
Test: manual
Change-Id: I12ad78ecf5f5859bee7e1536956756bc16d7e54e

7 years agoReplace DWORD with uint32_t
Jakub Pawlowski [Thu, 3 Nov 2016 21:18:55 +0000 (14:18 -0700)]
Replace DWORD with uint32_t

Test: mma -j45
Change-Id: Ia96e87460a22c9c14ba682d07dfcb3bf5479add8

7 years agoUse rc_handle for reconciliation of timer callback
Sanket Agarwal [Wed, 2 Nov 2016 22:01:32 +0000 (15:01 -0700)]
Use rc_handle for reconciliation of timer callback

Since the timer callback requires copy of the passed argument, it is not
a good idea to pass non-constant data. Instead passing handle since
lookup based on the handle is safe against possible corruption.

Bug: b/32610667
Change-Id: I02270b0f52d79310e2db8cf218f624eeb674b9c8

7 years agoCheck A2DP source is not already shut{ting} down
Sanket Agarwal [Wed, 2 Nov 2016 18:56:44 +0000 (11:56 -0700)]
Check A2DP source is not already shut{ting} down

In case A2DP is not enabled we are still executing the shut down path
which is leading to a race condition and posting to a thread queue which
is never created.

Bug: b/32610895
Change-Id: Id0cf95f4c7b5be26be28db5e837fbca3a0a87072

7 years agoA2DP codec related fixes and cleanup
Pavlin Radoslavov [Tue, 25 Oct 2016 17:17:56 +0000 (10:17 -0700)]
A2DP codec related fixes and cleanup

* Update bta_av_co_audio_getconfig() to select the preferred codec
* Fix a bug in selecting the A2DP codec inside
  bta_av_co_audio_set_codec()
* No need for function A2DP_ParsSbcMplHdr() to be exposed in the API
* Generalize the following APIs, so they can be used to redirect
  the call for vendor-specific codecs:
  - A2DP_CodecSepIndexStr()
  - A2DP_InitCodecConfig()
  - A2DP_SetSourceCodec()
* Change tA2DP_ENCODER_INIT_PARAMS.SamplingFreq from uint16_t to
  uint32_t so it can store larger sampling frequency.
* Rename content protection constants from BTA_AV_CP_*
  to AVDT_CP_* and move them from bta_av_co.h to avdt_api.h
* Rename some of the internal functions in a2dp_sbc.cc
* Add extra debug logging and fix some comments

Test: A2DP streaming, unit tests passing
Change-Id: I1b67ff18dc568dd859429fcd89c644799fb1438d

7 years agoMerge "Remove unused BLE_PERIPHERAL_MODE_SUPPORT"
Jakub Pawlowski [Wed, 2 Nov 2016 03:21:38 +0000 (03:21 +0000)]
Merge "Remove unused BLE_PERIPHERAL_MODE_SUPPORT"