Commit graph

99 commits

Author SHA1 Message Date
Tri Vo
6c2bd86f70 VTS tests now static link to HAL def libs.
And use VtsHalTargetTestDefaults.

Bug: 64040096
Test: compiles
Change-Id: I3cfb1a64f6abcf3145337a736800b72d92a0b152
2017-08-03 18:04:00 +00:00
Steven Moreland
7206708528 Update HIDL makefiles.
Allow them to be static.

This is required for a couple of reasons:
- enabling HIDL passthrough in recovery
- enabling VTS tests to be static blobs

Bug: 32920003
Bug: 64040096
Test: update-all-google-makefiles.sh
Change-Id: I1b2401fb273ab80819e3870aa71fe742269674ba
2017-07-26 10:14:57 -07:00
Stanley Tng
7915b71fb9 Fixed the HCI ACL Header definitions for PB and BC Flags
The byte offsets for Packet Boundary (PB) and Broadcast (BC) flags
in the HCI ACL Header is swapped. This will fixed it so that it matches
the Bluetooth Specifications.

Bug: 63241720
Test: Run manual VTS tests for Bluetooth
Change-Id: Ifc1f4d4f054a1dab13458c563e47bfb884f39d92
2017-07-19 11:03:27 -07:00
Treehugger Robot
1a31a9e45e Merge "Bluetooth: Change CHECK() to LOG_ALWAYS_FATAL()" 2017-07-07 03:18:41 +00:00
Treehugger Robot
1bd5a3ff87 Merge "Make RawAddress into a class (4/4)" 2017-07-07 01:29:30 +00:00
Jakub Pawlowski
19f1c07b3a Make RawAddress into a class (4/4)
* Add libbluetooth-types - library containing types implementation, that
is common between stystem/bt and packages/apps/Bluetooth. It must be
included in every project using btif interface.
* Put Raw Address implementation into libbluetooth-types
* Unify all "to/from string" helper methods into ToString and FromString
* bd_addr_empty -> RawAddress::kEmpty
* bd_addr_any -> RawAddress::kAny

Also fix leaks in jni str2addr by adding ReleaseStringUTFChars

Test: types_unittest
Change-Id: I7dca82ec2293ae5338a9500dd6aa43b59d25657a
Merged-In: I7dca82ec2293ae5338a9500dd6aa43b59d25657a
2017-07-06 22:40:09 +00:00
Myles Watson
3e272a7076 Bluetooth: Change CHECK() to LOG_ALWAYS_FATAL()
Bug: 62641184
Test: Compilation
Change-Id: I21192c7a5c15def379d040b586a66ee1534c7c15
2017-07-06 18:44:22 +00:00
Peng Qi
92afd74a15 BT HAL H4 write flow
If to send type and data separately for one HCI packet,
it will cause two system call context switch to kernel space,
which will introduce software overhead on data path.
Plus, if vendor does not use pure UART interface, it causes different
data behavior on BUS and may not adapt to all vendors as legacy HAL did.
Considering backward-compatibility, to use writev to send
type and data together once as legacy BT HAL did.

Test: H4 UTTest, BT VTS test, Bluetooth on/off
Change-Id: I2d93085fe0c01b48d0e3729a3fa85b5b27335b2c
2017-06-30 12:32:11 -07:00
Treehugger Robot
1bbe51d0b5 Merge "Include missing headers" 2017-06-17 00:09:23 +00:00
Bailey Forrest
ba20404ca2 Include missing headers
Bug: None
Test: Build
Change-Id: Id4967af4ab48ceda10c45edcb0bc4b856b991fd6
2017-06-12 16:49:18 -07:00
Myles Watson
9eee83093f Bluetooth: Call vendor cleanup() in Close()
Bug: 62453652
Test: sailfish and angler start/stop Bluetooth, pair
Change-Id: I8ba80ae1802d1f524acb1d8e26b5bb41fc1612d0
2017-06-08 20:35:32 +00:00
Steven Moreland
06c85d986a Update makefiles.
Adds default configuration to all hals.

Test: pass
Change-Id: Icdf6b56df82c4b7b7de815e7febea9a07ab96856
2017-05-18 16:14:16 -07:00
Myles Watson
74c601361c Bluetooth: Add a second thread for the scheduler
Test: service call bluetooth_manager 6 # (Stop Bluetooth)
      /data/nativetest64/VtsHalBluetoothV1_0TargetTest/\
          VtsHalBluetoothV1_0TargetTest
Bug: 38178265, 34461621
Change-Id: Ia8f6683ca47c9deac43d1047846caee5688f1eca
2017-05-11 16:57:01 -07:00
Steven Moreland
cb360c60d8 Update makefiles for c++-sources and c++-headers.
Test: pass
Bug: 38174080
Change-Id: I683455736eed35e6ced24e2763c2bdb5fb6c9601
2017-05-09 14:34:19 -07:00
Yi Kong
5ca756ea1f Remove unused lambda captures
Test: build
Bug: 37752547
Change-Id: I339baf849c7aef97dd319377026564dedd0cc568
2017-05-05 13:35:50 -07:00
Treehugger Robot
62769b7196 Merge "Remove redundant dependencies" 2017-05-01 23:19:25 +00:00
Steven Moreland
ee1d248ae2 Remove redundant dependencies
android.hidl.base@1.0 and android.hidlmanager@1.0 are built into libhidltransport.

Test: links
Bug: 33276472
Change-Id: I424371932af129bba9d58dcf8652c64297f35f05
2017-05-01 09:47:58 -07:00
Keun Soo Yim
ce89d5816f stop bluetooth service while VTS test is running
Test: run VTS HAL BT test
Bug: 37153328
Change-Id: I615d96daff496096122cd18158c205073f4623a6
(cherry picked from commit 1965f73bac)
2017-04-26 16:32:14 -07:00
Hung-ying Tyan
b422f16e23 Remove dependency of libhardware_legacy
It is not used by bluetooth and nfc services.
Bug: 33241851
Bug: 37305530
Test: built and tested on sailfish

(cherry picked from commit 593eeb7a4b)

Change-Id: I599073296baa5eee72a1fce8caa4eb8352f66218
Merged-In: I599073296baa5eee72a1fce8caa4eb8352f66218
2017-04-19 22:45:32 +00:00
Steven Moreland
1c11c98d5e Move bluetooth test to vendor.
The test is still built in data/nativetest64, but it must be marked as
vendor since it depends on vendor modules.

Also proprietary -> vendor.

Test: build with BOARD_VNDK_VERSION := current
Test: run test on internal marlin, passes
Bug: 33241851
(cherry picked from commit 2cfae52a2e)
Merged-In: I856838fe208a4cd038ea16d47f03f6278224b2ee
Change-Id: I856838fe208a4cd038ea16d47f03f6278224b2ee
2017-04-19 22:15:07 +00:00
Andreas Huber
6733baff6c Changed the naming scheme for Treble java libraries (both static and dynamic)
android.hardware.foo@1.0-java => android.hardware.foo-V1.0-java

Bug: 37207894
Test: make
Change-Id: I177f4cfd42f635aaf096107af8309d1a82ed41c0
Merged-In: I8b91881dfaf507c0d852d56ebbb53ff0987e5a34
2017-04-13 15:16:27 -07:00
Treehugger Robot
2e7ce4d73f Merge "bluetooth: include what you use" 2017-04-12 19:41:26 +00:00
Steven Moreland
96510c80f8 bluetooth: include what you use
Helper libraries also now on vendor partition.

Test: links
Test: bluetooth works on internal Marlin
Bug: 33241851

Change-Id: Ie99faf9146ce2ce3df83a2b46acfaa36a54c16c2
2017-04-12 17:12:03 +00:00
Steven Moreland
0dd5ba23fb Update makefiles.
Test: pass
Change-Id: I5cf42c8ff1e11207394e4852ba0bd03e4e3b7d2e
2017-04-11 16:41:07 -07:00
Joel Fernandes
1b8f6f7c77 Bluetooth HAL: Add to foreground schedtune group
EAS (Energy-Aware Scheduler) tends to cluster tasks together unless
they're marked to prefer an idle CPU (prefer-idle) during placement.
This is to save energy however it increases latencies. This is
noticeable when the Binder driver demotes the RT task to CFS and when
we try to do load balance in this path, the selection path still selects
a busy CPU. Add Bluetooth HAL service to the foreground schedtune group
to fix this as its critical for tasks like bluetooth audio playback.

Test: Boot and verify bluetooth HAL is in the foreground stune group
Bug: 36867985

Change-Id: Ib3c43cca4a2049af3700978b58a05989cc20b6ac
Signed-off-by: Joel Fernandes <joelaf@google.com>
2017-04-04 17:37:43 -07:00
Yuexi Ma
b8012eb907 Updates bluetooth hal test to use VtsHalHidlTargetTestBase v3
Test: pass
Change-Id: Ia5237a27800010174f2b23a3a4b1157f1c48781f
2017-03-31 23:27:59 +00:00
Myles Watson
3561717e09 Bluetooth: Replace assert() with CHECK()
Test: Bluetooth starts/stops, VtsHalBluetoothV1_0TargetTest passes
Change-Id: I1ecdf4ed7507fc8e2f00c35f136cb13e145713e5
2017-03-30 16:25:51 +00:00
Yuexi Ma
51d023c48e Bluetooth VTS test use VtsHalHidlCallbackBase for callback wait and notify
VtsHalBluetoothV1_0TargetTest uses VtsHalHidlCallbackBase.
Callback class extends VtsHalHidlCallbackBase and use waitForCallback, notifyFromCallback, and setWaitTimeout

The original Bluetooth test contains the following use cases:
  * Wait for specific callback
  * Set timeout for specific callback waiting
The modified version supports the above use cases.

Bug: 36036059
Test: Test pass locally
Change-Id: I961baaf7f1b09fa9c134629cc7280565a2664ed5
2017-03-30 02:36:06 +00:00
Andreas Huber
3e4acb8b3a Convert all comments into "doxygen-ready" comments.
Bug: 36453077
Test: make
Change-Id: Ic77394d4d2e1ccedba3a28230d870c5d6108bd40
2017-03-28 16:10:42 -07:00
Steven Moreland
e90c31f125 Update makefiles.
Test: pass
Change-Id: I925baccbe51a32b7b7f3f66cf2918d017ee6b039
2017-03-24 21:50:45 -07:00
Myles Watson
9cec0e331a Bluetooth: Protect pointers and callbacks
Test: kill com.android.bluetooth
Bug: 36150800
Change-Id: I9533731c9ce3776c84e6c1d3fdf3e266b328a084
2017-03-22 21:30:40 +00:00
Treehugger Robot
e5796ef7a6 Merge "Bluetooth: Do not die quietly on binder death" 2017-03-19 23:45:58 +00:00
Andre Eisenbach
8a9efb6e35 Revert "Bluetooth: Don't disable LPM at power off"
Causes power regression on Angler.

This reverts commit 3b2a29676b.

Bug: 36358814
Bug: 36026072
Change-Id: I9bbe218a87c7d092851c400739bc5740bcf13336
2017-03-17 20:32:58 +00:00
Andre Eisenbach
9f8931cf47 Bluetooth: Do not die quietly on binder death
Log if the Bluetooth service has died.
Also check the return status for Bluetooth service binder callbacks to
avoid DEAD_OBJECT exception when com.android.bluetooth crashes.

Bug: 36026072
Test: unit tests; Bluetooth off/on/off; kill -6 com.android.bluetooth
Change-Id: Ia28e6777ee7b78f06db8d5214324e696441d00f7
2017-03-17 10:50:35 -07:00
Zach Johnson
fed25ad256 Fix MCT data transport for the BT HAL
The vendor open interface command returns the total number
of FDs opened. (2 or 4 if the interface is MCT)

However, the list of FDs is always 4 in either case. If the
open command returns 2, the FDs are shared cmd/event and
data in/out.

2 FDs example
[41, 41, 42, 42]

4 FDs example
[41, 42, 43, 44]

If we condition the registration of ACL_IN on the total
number of FDs, then 2 FD MCT interfaces will not get data.

Fixes: 36067612, 36035039, 36188793
Test: manual, pairing is quick and data does transfer
Change-Id: Icc8728239ba81426d5fc0e678c5c5480fd9b5081
2017-03-15 13:50:36 -07:00
Myles Watson
3b2a29676b Bluetooth: Don't disable LPM at power off
The power mode should be unimportant if power off succeeds.

Test: Switch users (Toggles Bluetooth under CPU load)
Bug: 36026072
Change-Id: I09fafe4d4f9a466a7e12e617925f98ef3805c738
2017-03-15 16:01:46 +00:00
Myles Watson
c0aee0ce87 Bluetooth: No power off before power on
Test: Switch users (toggles Bluetooth under load)
Bug: 36026072
Change-Id: I7eef35e19fbb4cf825c2583ec0af573733b24f9d
2017-03-13 20:29:07 +00:00
Yuexi Ma
4f4fdaf664 Merge "Change vts target base test class name" 2017-03-10 20:58:04 +00:00
Myles Watson
66a4ca3c92 Bluetooth: Power off after closing the UART
Bug: 36084266
Test: angler & marlin switch users (Toggle Bluetooth under load)
Change-Id: I1e0c34e334d11b9dcf9df62cbde3d5556c537bd7
2017-03-10 09:27:23 -08:00
Yuexi Ma
6b8720110b Change vts target base test class name
Test: make vts succeed, vts kernel tests and nfc hal tests passed
Change-Id: I38ae6cc940d0f17bb3352f360efdf9c70697c76b
2017-03-10 00:42:13 -08:00
Myles Watson
9ef1f71982 Bluetooth: Protect callbacks during shutdown
- Hold the mutex during callbacks
- Disable power mode before deleting hci_

Bug: 36084266
Test: Switch users repeatedly (toggles Bluetooth)
Change-Id: I7e4d405e9028c3363c112a8b09c03b8aea652b7a
2017-03-09 12:12:45 -08:00
Steven Moreland
691a455b9f Add hidl_default and make modules use hidl_default.
find hardware/interfaces -type f -not -path "*/.git/*" \
-exec sed -i -e '/cc_[A-Za-z_]\+/ { N; s/$/\n    defaults:
\["hidl_defaults"\],/ }' {} \;
./hardware/interfaces/update-makefiles.sh

Test: no warnings
Bug: 35840847
Change-Id: I468b76893bf3f4b62ad610d1d9603bcb8797a702
2017-03-08 16:22:00 -08:00
Steven Moreland
90fc274838 bluetooth: remove warnings
Remove unused variables and commented out some unused APIs.

Test: pass
Change-Id: Ic191997d7db25277776417fd0069241ee01529e0
2017-03-08 16:21:35 -08:00
Zach Johnson
917efb1c0e Bring multi-channel transport into the glorious new age
Some devices still use MCT as their UART protocol, so
we need to bring it forward to the fresh new HAL.

Also, adding tests for H4 while I'm here.

Test: new unit tests pass and a device using MCT now
boots BT again \o/
Fixes: 34992730
Change-Id: Idb8e536a2779929ad8a0d4bac492c3011995cd79
2017-03-07 22:16:24 +00:00
Myles Watson
f3a3cb7a60 Bluetooth: Watch multiple FDs with AsyncFdWatcher
Test: AsyncFdWatcherSocketTest.WatchTwoFileDescriptors
Change-Id: I2444515541e9be01720341c693012a580b3cb04f
2017-03-04 00:40:14 +00:00
Yuexi Ma
93d2541aae Add columns to namespace for vts target base test invocation
Test: make vts
Change-Id: Ia0284fbc11eadef572dd510bb5847160852bd517
2017-02-28 20:49:00 +00:00
Yuexi Ma
178dfd5e29 change all vts hidl tests to use VtsHalHidlTargetBaseTest
Bug: 33385836
Test: mma
Change-Id: I660d6e0fce6422d87d4b227273a77c95d20ed3f2
2017-02-28 07:59:59 +00:00
Steven Moreland
6ca34f1bf5 Bluetooth: move to vendor partition.
Bug: 35328775
Test: works in both binderized and passthrough modes
Merged-In: I18f21b53c2282e27342a58716475ae213a2837d4
Change-Id: I18f21b53c2282e27342a58716475ae213a2837d4
2017-02-28 01:34:46 +00:00
Steven Moreland
d28a3dce40 Remove viral dependency on libhwbinder.
find hardware/interfaces -name Android.mk -exec sed -i -e '/libhwbinder
\\/d' {} \;
find hardware/interfaces -name Android.bp -exec sed -i -e
'/"libhwbinder"/d' {} \;
./hardware/interfaces/update-makefiles.sh

Test: everything links
Test: (sanity) booted marlin on internal master with these changes
Bug: 35710429
Change-Id: I6b0b5ae318422b7a9be17a19a79e039ffc0f9272
2017-02-24 12:01:06 -08:00
Treehugger Robot
c4c2793b01 Merge "Bluetooth: Make HciPacketizer reusable" 2017-02-24 01:44:16 +00:00