Commit graph

119 commits

Author SHA1 Message Date
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
Myles Watson
274a381d76 Bluetooth: Make HciPacketizer reusable
Test: VtsHalBluetoothV1_0TargetTest passes
Change-Id: I480d156225af2a5dd879f47a897af0b01dab5663
2017-02-23 15:54:21 -08:00
Martijn Coenen
09e49b0871 Merge "Bluetooth: deal with framework going away." 2017-02-23 19:35:30 +00:00
Martijn Coenen
678af7f5f8 Bluetooth: deal with framework going away.
Bug: 35624326
Test: Bluetooth HAL stays alive and works after com.android.bluetooth
is killed.

Change-Id: Id5b5a5b88cd35202e5737a0c99d28db9bebb4250
2017-02-23 18:49:39 +01:00
Myles Watson
5ea487bdce Bluetooth: Simplify started check
Test: Bluetooth starts/stops
Change-Id: Ib1777ac31d4a13d4221045fa3fa7d817a795f6f9
2017-02-22 14:46:14 +00:00
Treehugger Robot
4b9692ae04 Merge "Bluetooth: Export AsyncFdWatcher for reuse" 2017-02-22 04:06:51 +00:00
Treehugger Robot
f570fedcd4 Merge "Bluetooth: Check the return value of initialize()" 2017-02-22 03:36:46 +00:00
Myles Watson
be6176dded Bluetooth: Export AsyncFdWatcher for reuse
Test: Bluetooth starts/stops
Change-Id: I1dcd8684fd150b5eb27c75e5d7803070009e0bf5
2017-02-22 00:23:09 +00:00
Tri Vo
81f9968c71 Remove .vts spec files.
Test: mmma hardware/interfaces
Change-Id: Iabbcd336d37ceb58ea4cc649ee5c104424494513
2017-02-21 15:55:00 -08:00
Myles Watson
bc7e5876ad Bluetooth: Check the return value of initialize()
Test: Test fails gracefully when initialize() fails
Change-Id: Iff7737ba911635e9974612d8d192b783cf3e213d
2017-02-21 17:07:41 +00:00
Zhuoyao Zhang
f7693eed97 Update the test binary and source file name.
* To confirm with Vts naming convention.

Bug: 35273456
Test: mma
Change-Id: Ide6d9d15618e65d8cb74363f3a8acd52609cd0dd
2017-02-17 10:34:33 -08:00
Treehugger Robot
8cd0125d2e Merge "Remove --coverage in Android.bp" 2017-02-15 05:08:19 +00:00
Myles Watson
dbbdf3e5bc Bluetooth: Add CHECK and move ASSERT
Test: bluetooth_hidl_hal_test passes
Change-Id: Ib857265204d39ffb54afc6f589fdc1b852362a97
2017-02-13 19:54:54 +00:00
Zhuoyao Zhang
65c99d7f08 Update vts files on aosp.
* Based on the latest hidl-gen and .hal files.

Test: mma
      make vts.

Change-Id: I4765450d985afd552fe720d91b9ab3422f5b7a47
2017-02-12 13:51:06 -08:00
Dan Willemsen
84107a0630 Remove --coverage in Android.bp
It's no longer allowed now that Soong supports code coverage.

Bug: 32749731
Test: None
Change-Id: I09ef27983e0744543c3a6e1c0c73d69217dd582c
2017-02-10 09:29:36 -08:00
Tri Vo
06da29ffae Use filegroup as genrule srcs.
Test: mmma hardware/interfaces -j64
Change-Id: If282ed5f4a87045d169fcea7ad648b046a5f1cfb
2017-02-10 02:18:07 +00:00
Andreas Huber
0574bacb2a Updated makefiles
Java intermediates are now created in the common rather than the device-
specific generated sources subdirectory.

Bug: 33842609
Test: make
Change-Id: I16af4cd19bf0b24baa0ad9ebfdb86b4d959c8672
2017-02-09 16:56:56 -08:00
Andre Eisenbach
f60aeb4462 Bluetooth: Disable low power managerment on Hal->close()
This ensures the vendor library can release any wakelocks held and
perform any additional cleanup steps as necessary.

Change-Id: Ibfeac161109162ac375eef9c20f147f0506de602
Fixes: 35097918
Test: manual; disable Bluetooth, monitor wakelocks
2017-02-07 20:48:21 -08:00
Tri Vo
ac9f1c02f3 Remove vts driver/profiler build rules.
Generate filegroups for .hal files so that driver/profiler build rules
can migrate to another project.

Bug: 34893894
Test: mmma hardware/interfaces -j32
Change-Id: Iefc98a6df16706fbb798bc32405fe8ff0c3de450
2017-02-06 13:54:41 -08:00
Treehugger Robot
812f8ad3ab Merge "Bluetooth: Generate a random address" 2017-02-06 18:07:13 +00:00
Myles Watson
11f10baefe Bluetooth: Generate a random address
If a device does not have a factory address set, generate one.

Since this is a bug, add a warning.

Bug: 34952761
Test: Pixel C Bluetooth turns on and off
Change-Id: Icd2ef5c40f0ef6ad93effd9dd662b4b79d3eb0f6
2017-02-06 14:37:51 +00:00
Keun Soo Yim
5d6712c7e1 move VTS stub files and non-functional tests (aosp)
Test: mma
Bug: 34976004
Merged-In: Id9c88a9778fba49f0841a474aa067d271f14e207
Change-Id: Id9c88a9778fba49f0841a474aa067d271f14e207
2017-02-04 02:52:31 +00:00
Treehugger Robot
b19f11d09d Merge changes Ic4fcbb22,I1be8a18d
* changes:
  Bluetooth: Use AsyncFdWatcher for power management
  Bluetooth: AsyncFdWatcher: Refactor timeout lock
2017-02-03 18:24:23 +00:00
Treehugger Robot
559ae1585b Merge "Bluetooth: Free memory from transmit_cb commands" 2017-02-03 18:24:09 +00:00
Myles Watson
beb13b45c0 Bluetooth: Use AsyncFdWatcher for power management
Implement low power mode using timeouts from the interface.

Test: Boots, Bluetooth turns on/off,
      Instrumented bt_vendor library shows power management
      calls.
Change-Id: Ic4fcbb222f24b66c13f3797b14475d278c49fbc6
2017-02-02 22:15:56 +00:00
Myles Watson
eba1312c86 Bluetooth: AsyncFdWatcher: Refactor timeout lock
Allow timeouts to change the timeout.
Add a unit test for this.

Test: Unit tests pass, Bluetooth starts and stops.
Change-Id: I1be8a18dd74a312175ec9c27de37213272650e8e
2017-02-02 22:15:49 +00:00
Myles Watson
4e2e8ec4e0 Bluetooth: Free memory from transmit_cb commands
Test: Bluetooth starts and stops
Change-Id: I540fcc77f9bae0178db325b7014f2b839d4ad77d
2017-02-02 22:15:33 +00:00
Zhuoyao Zhang
bd752892b3 Support driver/profiler for all hals.
* Update the make file to generate driver/profiler for hals.

Test: mma
Change-Id: I2a91d913b05beb8e1ecf28a205852f848ef1f5ee
2017-02-01 20:53:21 -08:00
Myles Watson
b43a5b2435 Bluetooth: Move AsyncFdWatcher tests to the device
Darwin builds were breaking.

Test: compile, unit tests pass
Change-Id: Ia00f590fe56211e25dff8d3138ebd93a306cf2c6
2017-01-31 12:20:44 -08:00
Myles Watson
7d42dcad6e Bluetooth: Add a timeout in async_fd_watcher
Add a timeout to the select call and a callback.
Add unit tests for async_fd_watcher.

Test: unit tests pass
Change-Id: I0076fd52e79aac0d2a9fcceb90aae318d5f0757b
2017-01-31 04:32:16 +00:00
Myles Watson
df765eab60 Bluetooth: Make Send() send a complete packet
Add the packet type to Send() so that it is called once per packet.

Test: Bluetooth starts/stops and scans
Change-Id: I2ef9c5f9a85d3227d4ff181b6a6931f239f75049
2017-01-31 00:36:48 +00:00
Myles Watson
a7d33b3636 Bluetooth: Check for waiting HAL callbacks
Test: Bluetooth boots, turns on/off
Change-Id: Iad2f359a78c9acbf0fe44740ed0813de462ce57c
2017-01-30 19:29:25 +00:00
Myles Watson
71390182c6 Bluetooth: Use fixed-size preambles
Test: Bluetooth turns on/off finds devices in Settings
Change-Id: Id640f3dbde3f53b31ce62eccf59bbc8d25130388
2017-01-30 19:27:40 +00:00
Myles Watson
8ffcbc7797 Bluetooth: Clean up some messages
Use Info for low-frequency messages.
Print hex for characters.

Test: Bluetooth turns on/off
Change-Id: If1fe20a71287cc91c2a7225488e5d44c7ee4ecee
2017-01-30 19:19:17 +00:00
Dan Albert
3d0263f0eb Include what you use.
Test: mm
Bug: http://b/34740564
Change-Id: I75cf88b79faf68764f1223e39595d0320d7b682a
2017-01-26 15:33:15 -08:00
Myles Watson
960cae2e98 bluetooth: Configure VTS to run the HAL gtest
Configure VTS to run target-side functional test

Test: run the test

Change-Id: I1d41113d422ca21ba539b43d22ae5e47facf5fcd
2017-01-20 00:34:05 +00:00
Chris Phoenix
b5558e3de1 Bluetooth HAL uses "default" service name
The getService() and registerAsService() methods of interface objects
now have default parameters of "default" for the service name. HALs
will not have to use any service name unless they want to register
more than one service.

Test: builds; verify HAL still works

In support of b/33844934

Change-Id: Icc006a71b41bcd03fe4a04ee92503e76ff07cd77
2017-01-18 21:29:50 +00:00
Andre Eisenbach
9041d97812 bluetooth: Add initialization completed callback
Test: bluetooth_hidl_hal_test
Bug: 31972505
Change-Id: I64c19a7fe7299079c5daf74e7b238b0d71d65db2
2017-01-18 19:38:57 +00:00
Yifan Hong
10ac9b44f5 Bp/n/sFoo -> Bp/n/sHwFoo
Bug: 33554989
Test: hidl_test
Change-Id: I748181e9eaf5b78318054b9fd99ac1a43d00498a
2017-01-10 16:01:46 -08:00
Martijn Coenen
4faa7f5b27 Fix wifi/bluetooth threadpool usage.
Bug: 31226656
Test: mma, hidl_test
Change-Id: I3f30f32392714ed653498828172165e511f847e7
2016-12-30 11:24:18 +01:00
Myles Watson
6a7d622264 bluetooth: Find the device's Bluetooth address
Test: bluetooth_hidl_hal_test
Change-Id: I5353aaef3f8c5db75e424a8e1b242b08d5a96c6e
2016-12-30 01:35:04 +00:00
Andre Eisenbach
89ba5284e3 Add default Bluetooth HAL implementation
Also added initial target-side functional test.

Test: bluetooth_hidl_hal_test
Bug: 31972505
Change-Id: I1f574a5b2b53d7fbf65dbb4e1aaa5f8b6c5a9448
2016-12-29 19:17:28 +00:00
Yifan Hong
b85d8763c7 Update makefiles for Java package path.
use V1_0 instead of 1.0.

Bug: 33554192

Test: hidl_test_java
Change-Id: Ic2d95265df10914a60a5bb743d75e839948838c3
2016-12-13 18:06:24 -08:00
Yifan Hong
e19e582bd5 Update makefiles for hidlizing IBase.
A new dependency android.hidl.base@1.0 is added for
all projects.

Also updated Android.mk for NFC hal (for java constants)

Test: mma

Change-Id: Ia70d0eb0d74de06475a339698386d383d491a43a
2016-12-03 01:08:59 -08:00
Steven Moreland
3e3a0998e0 Update makefiles for logging.
Bug: 32943424
Test: hidl_test
Change-Id: I86dc81935912861073497c07696378895a25f9ee
2016-11-21 16:19:57 -08:00
Yifan Hong
63544eacb6 Split libhidl into base and transport.
Bug: 32756130

Test: mma
Change-Id: Id21cf23abe2910f26bb7895511862443b93dc112
2016-11-18 09:52:57 -08:00
Colin Cross
8f084e00d6 Support genrules with multiple tools
To allow genrules with more than one tool, rename the tool property to
tools and make it an array, replace $tool with $(location <label>),
and use $() for other variables for consistency.

Bug: 31948427
Test: compare build.ninja
Change-Id: I3d714f70a2af0dc60faeee10e09b6ed166601f1d
(cherry picked from commit b785f5b82e)
2016-11-07 10:54:59 -08:00
Steven Moreland
7982058699 Running update-makefiles for fixed spacing.
Test: pass
Change-Id: I4dcaf70b1c014f3ecf685d4884601be6f17ee51d
2016-11-01 20:06:29 +00:00
Steven Moreland
7a4f118c48 Stop all these merge conflicts.
Test: mma -j64
Change-Id: I319198af32adf1fef180c5c2c22ba4b360fa7609
2016-10-26 12:05:29 +02:00
Steven Moreland
ce9779412a Update headers (for export shared lib headers)
Test: mma -j64
Bug: 32337293
Change-Id: I93e7cab90efac407525a1a5f2ad30f816a530e17
2016-10-22 00:28:00 +00:00
Myles Watson
acfbd25247 Add Bluetooth HAL definition
Test: compiles
Bug: 31972505
Change-Id: I7608b0814c9ca697b21c9e115cfcd81ab1364892
2016-10-13 22:32:38 +00:00