Commit Graph

30 Commits

Author SHA1 Message Date
Jakub Pawlowski
13b4d3150c bluetooth: V1.1
Add ISO

Test: run rootcanal, verify 1.1 HAL can be used
Bug: 144413056
Change-Id: Ic5b33602e1e4ba8e6d16623b9f8c46f674fc476c
2019-11-20 00:47:22 +01:00
Joseph Pirozzo
c1e10a3369 Initialize pointers for vendor_interface
Default member variables to nullptr.

Bug: 118075338
Test: Inspection
Change-Id: I5fc8a5b45d2c1116036139e308743a1928abaef3
2018-11-13 10:38:31 -08:00
Jack He
caeab05bdb Apply clang-format to Bluetooth related HAL code
- cp system/bt/.clang-format hardware/interfaces/bluetooth/
- modify hardware/interfaces/bluetooth/.clang-format to match context
- find . -type f \( -iname \*.cpp -o -iname \*.h -o -iname \*.cc \) | xargs clang-format --style=file -i

Test: make
Change-Id: I82e4f26e1efeb715aff7de8a15c3db06e02967a4
2018-10-23 18:22:10 -07:00
Lianchao Song
424ffd0da5 BT Interface: fix hci cmd timeout
Add mutex in function Send() and OnTimeout() to do mutual
exclusive access on lpm_wake_deasserted.

If lpm_wake_deasserted is out of sync with the actual
wake state, then platforms which use the lpm hint
will break.

Bug: 64299848
Test: run affected platform for a long period of time
and find that hci commands do not time out
Change-Id: I9f630d6f40f84b9c047c6488632cd44d6602bb14
2018-01-09 21:14:47 +00:00
Myles Watson
9833109a3e Bluetooth: Return false when not shut down
Do not crash in the vendor layer.  The stack will crash
when it fails to initialize.

Bug: 64535243
Test: Bluetooth starts/stops
Change-Id: I69fdd2879c80fa2f006c50f0a42a85e9289b14fe
2017-08-24 17:48:18 +00:00
Myles Watson
ec1eda69b6 Bluetooth: Check the number of file descriptors
Opening the serial port(s) returns -1 when it fails, check
that the number of file descriptors is greater than 0 and
less than the size of the array.

Test: VtsHalBluetoothV1_0TargetTest, Bluetooth start/stop
Bug: 64420262
Change-Id: Icbffa5bd8c02030e389bac03aa5e1e78cc3c6057
2017-08-09 18:23:48 +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
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
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
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
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
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
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
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
Myles Watson
274a381d76 Bluetooth: Make HciPacketizer reusable
Test: VtsHalBluetoothV1_0TargetTest passes
Change-Id: I480d156225af2a5dd879f47a897af0b01dab5663
2017-02-23 15:54:21 -08: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
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
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
4e2e8ec4e0 Bluetooth: Free memory from transmit_cb commands
Test: Bluetooth starts and stops
Change-Id: I540fcc77f9bae0178db325b7014f2b839d4ad77d
2017-02-02 22:15:33 +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
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
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