OSDN Git Service

android-x86/system-bt.git
5 years agoRemove unnecessary include_dirs
Paul Duffin [Tue, 23 Jul 2019 09:36:10 +0000 (10:36 +0100)]
Remove unnecessary include_dirs

The header directory specified in the include_dirs property is already
included via the header_libs property.

Test: m avrcp_headers
Change-Id: Id3af155e64127c5bc14a17780fa77a4c6147e5d8

5 years agoMerge "Disable absolute volume for AirPods 2 with MAC address from 9C:64:8B"
Treehugger Robot [Mon, 22 Jul 2019 23:30:41 +0000 (23:30 +0000)]
Merge "Disable absolute volume for AirPods 2 with MAC address from 9C:64:8B"

5 years agoMerge "L2CAP: Cid, Mtu, SignalId type and constant"
Treehugger Robot [Mon, 22 Jul 2019 22:27:55 +0000 (22:27 +0000)]
Merge "L2CAP: Cid, Mtu, SignalId type and constant"

5 years agoPDL: Extract CustomFieldFixedSize
Myles Watson [Fri, 19 Jul 2019 23:07:36 +0000 (16:07 -0700)]
PDL: Extract CustomFieldFixedSize

Test: bluetooth_packet_parser_test
Change-Id: Ia93442ca1cc173d0b6c813a45c722f14d2f34fa0

5 years agoPDL: Add GenExtractor functions to fields
Myles Watson [Tue, 16 Jul 2019 16:50:23 +0000 (09:50 -0700)]
PDL: Add GenExtractor functions to fields

Test: bluetooth_packet_parser_test
Change-Id: I6ee3ae82e8e7949f0fd30dfae6f322dcc4769190

5 years agoPDL: Separate member and parameters for arrays
Myles Watson [Wed, 17 Jul 2019 20:17:24 +0000 (13:17 -0700)]
PDL: Separate member and parameters for arrays

Test: bluetooth_packet_parser_test
Change-Id: I7c23d29548d63f7c1e23281585b10fd9f43bdad4

5 years agoPDL: Factor out insert functions
Myles Watson [Fri, 12 Jul 2019 17:08:34 +0000 (10:08 -0700)]
PDL: Factor out insert functions

Test: bluetooth_packet_parser_test
Change-Id: Ie61fe74705156b3fb6641a001caf070b8deee934

5 years agoPDL: Add non-static methods to checkers
Myles Watson [Mon, 15 Jul 2019 21:39:23 +0000 (14:39 -0700)]
PDL: Add non-static methods to checkers

Test: bluetooth_packet_parser_test
Change-Id: I2c753bce46226b6bd1597293d8077c2cbacc83b1

5 years agoPDL: GetType->GetDataType, GetFieldType->string
Myles Watson [Mon, 15 Jul 2019 22:02:48 +0000 (15:02 -0700)]
PDL: GetType->GetDataType, GetFieldType->string

Test: bluetooth_packet_parser_test
Change-Id: I5891535131778638becd2ef491644c25560ba0a0

5 years agoPDL: Util fixup
Myles Watson [Fri, 12 Jul 2019 22:19:21 +0000 (15:19 -0700)]
PDL: Util fixup

Test: add a type with a large enum value
enum BadType : 4 {
  ZERO = 0,
  ONE = 1,
  TWO = 2,
  THREE = 0xffffff,
}
ERROR: AddEntry: Value of THREE(16777215) is greater than the max possible value for enum BadType(15)
Change-Id: Ieb9920818723a56c9f05342b895c172ee772a2b0

5 years agoPDL: Move GenSerialize and GenSize to ParentDef
Myles Watson [Wed, 10 Jul 2019 17:45:29 +0000 (10:45 -0700)]
PDL: Move GenSerialize and GenSize to ParentDef

Test: bluetooth_packet_parser_test
Change-Id: Ifa748a874ec5a84dea19eb40093b33ac5b6fd9cb

5 years agoMerge "Reset GATT cache file if connection state is unpairing"
Weichin Weng [Mon, 22 Jul 2019 02:04:33 +0000 (02:04 +0000)]
Merge "Reset GATT cache file if connection state is unpairing"

5 years agoL2CAP: Cid, Mtu, SignalId type and constant
Chris Manton [Fri, 19 Jul 2019 20:54:52 +0000 (13:54 -0700)]
L2CAP: Cid, Mtu, SignalId type and constant

Test: bluetooth_test_gd
Change-Id: Iac9c6514467048202136795d08217c7743adac37

5 years agoDisable absolute volume for AirPods 2 with MAC address from 9C:64:8B
Zongheng Wang [Fri, 19 Jul 2019 17:53:25 +0000 (10:53 -0700)]
Disable absolute volume for AirPods 2 with MAC address from 9C:64:8B

Volume of AirPods 2 would be set to maximum when users start to play
audio. Previously we fixed this bug for AirPods 2 with MAC address from
94:16:25(b/129602489). This CL will fix those whose MAC address is from
9C:64:8B.

Bug: 137752614
Test: Played music and videos with AirPods 2
Change-Id: Ic5027e07fc8fade6ce56908a3bcc51e42ffb8d0b

5 years agoPDL: Add missing "pragma once"
Hansong Zhang [Fri, 19 Jul 2019 00:35:50 +0000 (17:35 -0700)]
PDL: Add missing "pragma once"

Test: make
Change-Id: Ibd25e1d275e9910f11658d7a7d1c5761354eb7ee

5 years agoObserver Registry
Hansong Zhang [Tue, 16 Jul 2019 01:34:34 +0000 (18:34 -0700)]
Observer Registry

Helper for client (observer) to track registration and drop callbacks if
observer is unregistered

Test: bluetooth_test_gd
Change-Id: Icc58d812bccbcb85c8b8142c659503636f498b6a

5 years agoSeparate out l2cap control frame payload data
Chris Manton [Wed, 17 Jul 2019 18:37:27 +0000 (11:37 -0700)]
Separate out l2cap control frame payload data

Test: make -j32
Change-Id: I1c145c05fc444c1dcef169396e636e94fda8cbd0

5 years agoReset GATT cache file if connection state is unpairing
weichinweng [Thu, 18 Jul 2019 08:44:42 +0000 (16:44 +0800)]
Reset GATT cache file if connection state is unpairing

Reset GATT cache for the device if connection state is unpairing, avoid
remaining useless gatt cache file.

Bug: 137697556
Test: Pair/Forget device, and check whether the gatt cache is exist.
Change-Id: I617289b7802a4f03e2910defc419a0bbb0a2aa06

5 years agoMerge "Refresh the encoder configuration of software while updating the MTU"
Treehugger Robot [Tue, 16 Jul 2019 22:19:14 +0000 (22:19 +0000)]
Merge "Refresh the encoder configuration of software while updating the MTU"

5 years agoMerge "Remove libnativehelper/include/nativehelper from include_dirs"
Paul Duffin [Tue, 16 Jul 2019 19:28:48 +0000 (19:28 +0000)]
Merge "Remove libnativehelper/include/nativehelper from include_dirs"

5 years agoRemove libnativehelper/include/nativehelper from include_dirs
Paul Duffin [Tue, 16 Jul 2019 13:37:35 +0000 (14:37 +0100)]
Remove libnativehelper/include/nativehelper from include_dirs

Needed as libnativehelper is part of the runtime module and so will not
be present in an unbundled build, instead its build targets will be
provided as prebuilts.

Bug: 134379140
Test: m checkbuild
Change-Id: Ia3c7261b9b3f0d67a897af03ef6a3e016627b7e6

5 years agoAVDTP: Make sure the UUID of the SCB is initialized before discovering
Cheney Ni [Tue, 16 Jul 2019 12:43:49 +0000 (20:43 +0800)]
AVDTP: Make sure the UUID of the SCB is initialized before discovering

When parsing remote SEP capabilities, we check the UUID value in the AV
SCB to choose the SEP, and this parameter was assigned when AVDTP was
reconnecting from the phone side. This change also assigns the UUID to
make sure the stack can find remote's SEPs correctly when reconnected
by the remote.

Bug: 137631786
Test: make AVDTP reconnection from the peer side
Change-Id: Ib2fa6e76de31bab1131c024e9f76433f3fd8b60a

5 years agoCert: Let EventStream subscribe() block
Hansong Zhang [Wed, 19 Jun 2019 23:45:58 +0000 (16:45 -0700)]
Cert: Let EventStream subscribe() block

In EventStream, let subscribe() and unsubscribe() block. Also simplify
the code.

Test: cert/run_cert.sh
Change-Id: I73eaed21fc77a114c8b678a0c86775f125a35cd1

5 years agoMerge "GD HCI:Wait channel ready after stop/start server"
Treehugger Robot [Thu, 11 Jul 2019 18:11:12 +0000 (18:11 +0000)]
Merge "GD HCI:Wait channel ready after stop/start server"

5 years agoGD HCI:Wait channel ready after stop/start server
Chienyuan [Thu, 11 Jul 2019 06:30:20 +0000 (14:30 +0800)]
GD HCI:Wait channel ready after stop/start server

When running multiple tests, the second test will always fail due to
client send rpc request before channel ready. Add wait_channel_ready
function to GdDeviceBase and use it to check channel ready when each
testcase start.

Bug: 136577370
Test: run run_cert.sh
Change-Id: I708035a21b43bcdef80ef45644205648b08cd074

5 years agoMerge "DO NOT MERGE - Merge pie-platform-release (PPRL.190705.004) into master"
Treehugger Robot [Thu, 11 Jul 2019 03:52:58 +0000 (03:52 +0000)]
Merge "DO NOT MERGE - Merge pie-platform-release (PPRL.190705.004) into master"

5 years agoMerge "Add log entry to interop_match_name()"
Andre Eisenbach [Wed, 10 Jul 2019 18:17:10 +0000 (18:17 +0000)]
Merge "Add log entry to interop_match_name()"

5 years agoMerge "ACL manager cert"
Treehugger Robot [Wed, 10 Jul 2019 02:38:58 +0000 (02:38 +0000)]
Merge "ACL manager cert"

5 years agoMerge "PDL: Add variable-size CustomField(s)"
Treehugger Robot [Wed, 10 Jul 2019 00:30:41 +0000 (00:30 +0000)]
Merge "PDL: Add variable-size CustomField(s)"

5 years agoMerge "PDL: Add ParentDef for packets"
Treehugger Robot [Wed, 10 Jul 2019 00:30:13 +0000 (00:30 +0000)]
Merge "PDL: Add ParentDef for packets"

5 years agoMerge "PDL: Move GenInclude and GenUsing to CustomDef"
Treehugger Robot [Wed, 10 Jul 2019 00:26:13 +0000 (00:26 +0000)]
Merge "PDL: Move GenInclude and GenUsing to CustomDef"

5 years agoAdd log entry to interop_match_name()
Andre Eisenbach [Tue, 9 Jul 2019 23:59:41 +0000 (16:59 -0700)]
Add log entry to interop_match_name()

Bug: 137141824
Test: manual
Change-Id: Id59d32b31c8915f008ee85920cebd2a06b50c040

5 years agoMerge "Rootcanal: Implement reject connection request"
Treehugger Robot [Wed, 10 Jul 2019 00:05:59 +0000 (00:05 +0000)]
Merge "Rootcanal: Implement reject connection request"

5 years agoDO NOT MERGE - Merge pie-platform-release (PPRL.190705.004) into master
Xin Li [Tue, 9 Jul 2019 23:54:23 +0000 (16:54 -0700)]
DO NOT MERGE - Merge pie-platform-release (PPRL.190705.004) into master

Bug: 136196576
Change-Id: I0b01b2d05243625f3c4ae1b3326bae88ea6a9f36

5 years agoSwitch Nintendo workaround to match by name
Andre Eisenbach [Mon, 8 Jul 2019 21:49:06 +0000 (14:49 -0700)]
Switch Nintendo workaround to match by name

Bug: 136478524
Test: manual
Change-Id: Ib60cd5adfc4db3ba93fe5ed8c15353225b6cf165

5 years agoPDL: Add variable-size CustomField(s)
Myles Watson [Tue, 2 Jul 2019 19:02:47 +0000 (12:02 -0700)]
PDL: Add variable-size CustomField(s)

Test: bluetooth_packet_parser_test
Change-Id: I88e3dd2ab4804e8b5a0692d005969640cc110b99

5 years agoPDL: Add ParentDef for packets
Myles Watson [Tue, 9 Jul 2019 21:09:42 +0000 (14:09 -0700)]
PDL: Add ParentDef for packets

Factor out logic for holding fields in preparation for
structs.

Test: bluetooth_packet_parser_test
Change-Id: Ic9eb6d5387efe5be439a0d6b222c557b05bd3fa9

5 years agoPDL: Move GenInclude and GenUsing to CustomDef
Myles Watson [Tue, 2 Jul 2019 17:14:47 +0000 (10:14 -0700)]
PDL: Move GenInclude and GenUsing to CustomDef

Test: bluetooth_packet_parser_test
Change-Id: I9ebe10f9d537a254ddd21d62d2c1a23f38e00d0e

5 years agoACL manager cert
Hansong Zhang [Thu, 20 Jun 2019 00:22:21 +0000 (17:22 -0700)]
ACL manager cert

Test: cert/run_cert.sh
Change-Id: I89814224be191fd97a2581b3a36eed67748be7c5

5 years agoRootcanal: Implement reject connection request
Hansong Zhang [Mon, 8 Jul 2019 22:32:26 +0000 (15:32 -0700)]
Rootcanal: Implement reject connection request

Test: manual
Change-Id: I5413cf83f031b6eb2b83b943c6157f845aa40b2d

5 years agoSnap for 5622519 from fef57bda2a3cf2dca83848db5b8e789cb32dac1d to pi-platform-release
android-build-team Robot [Mon, 8 Jul 2019 23:37:32 +0000 (23:37 +0000)]
Snap for 5622519 from fef57bda2a3cf2dca83848db5b8e789cb32dac1d to pi-platform-release

Change-Id: I6e3b65c572808128485a96f58ce863a1619544fc

5 years agoMerge "Match Nintento Pro Controller by name for interop"
Andre Eisenbach [Mon, 8 Jul 2019 20:04:39 +0000 (20:04 +0000)]
Merge "Match Nintento Pro Controller by name for interop"

5 years agoSnap for 5600800 from 2d3cdf31bb8d8452380a3398e57e87f88318a274 to pi-platform-release
android-build-team Robot [Mon, 8 Jul 2019 18:26:18 +0000 (18:26 +0000)]
Snap for 5600800 from 2d3cdf31bb8d8452380a3398e57e87f88318a274 to pi-platform-release

Change-Id: I022653b900c4996c7d78dde1b5b4c66beb729b95

5 years agoMatch Nintento Pro Controller by name for interop
Andre Eisenbach [Mon, 1 Jul 2019 17:48:10 +0000 (10:48 -0700)]
Match Nintento Pro Controller by name for interop

The Nintento Pro Controller uses an unknown number of
BDA ranges (at least 3 found internally). Switching
to name matching...

Bug: 136478524
Test: manual
Change-Id: Ie2dfb700c9550af0c314759ec496a04a8e1aa062

5 years agoMerge "GD:Wait channel ready after stop/start server"
Treehugger Robot [Mon, 8 Jul 2019 16:46:45 +0000 (16:46 +0000)]
Merge "GD:Wait channel ready after stop/start server"

5 years agoGD:Wait channel ready after stop/start server
Chienyuan [Fri, 5 Jul 2019 10:18:56 +0000 (18:18 +0800)]
GD:Wait channel ready after stop/start server

When running multiple tests, the second test will always fail due to
client send rpc request before channel ready. Add wait_channel_ready
function to GdDeviceBase and use it to check channel ready when each
testcase start.

Bug: 136577370
Test: run run_cert.sh
Change-Id: I210dcd69d6e40a315710ba2b8e9e8819e462b42b

5 years agoMerge "Hearing Aid: set BLE phy to 2M if local and peer indicate PHY 2M support"
Treehugger Robot [Thu, 4 Jul 2019 08:00:23 +0000 (08:00 +0000)]
Merge "Hearing Aid: set BLE phy to 2M if local and peer indicate PHY 2M support"

5 years agoRefresh the encoder configuration of software while updating the MTU
Cheney Ni [Mon, 10 Jun 2019 13:46:03 +0000 (21:46 +0800)]
Refresh the encoder configuration of software while updating the MTU

In order to have better compatibility, peer parameters like the MTU are
necessary for packing AVDTP media frames. When reconfiguring the codec,
the encoder was updated before negotiated with remote, and needed to
update again after data channel opened. There was set audio config from
UIPC to help, and now we add the request after reconfigured.

Bug: 134125165
Test: manual
Change-Id: Ia823057b13cebde63d72f2a41aa744f1966eb20d

5 years agoHearing Aid: set BLE phy to 2M if local and peer indicate PHY 2M support
weichinweng [Wed, 3 Jul 2019 09:52:19 +0000 (17:52 +0800)]
Hearing Aid: set BLE phy to 2M if local and peer indicate PHY 2M support

Set the BLE phy to 2M if the BT controller and peer Hearing Aid device
indicate phy 2M support, otherwise, use default phy channel.

Bug: 135769508
Test: 1.Forget/Repair Hearing Aid device check whether phy is expected.
2.Disconnect/Reconnect Hearing Aid device check whether phy is expected.
3.HearingAid device power off/on, check whether phy is expected.

Change-Id: Ib410a8885f3a68c361bb97d5c9a3833f2a1be528

5 years agoPDL: Add missing quote in matching constraint error
Myles Watson [Wed, 5 Jun 2019 22:35:52 +0000 (15:35 -0700)]
PDL: Add missing quote in matching constraint error

Test: misspell a constraint and compile a .pdl file
Change-Id: I86aa9a8a4270d4c5fd922c53112ffdf8fc0f86fe

5 years agoRootCanal: Always add default devices
Myles Watson [Fri, 21 Jun 2019 13:04:08 +0000 (06:04 -0700)]
RootCanal: Always add default devices

Bug: 129546852
Test: android.bluetooth.cts.BluetoothLeScanTest#testBasicBleScan
Change-Id: I9912dc7a98155972483e1e1dca812ebbae806bdd

5 years agoRootCanal: Make beacons less verbose
Myles Watson [Wed, 26 Jun 2019 17:27:19 +0000 (10:27 -0700)]
RootCanal: Make beacons less verbose

Test: scan for Bluetooth devices, watch logcat
Change-Id: I971a7e56359adc39d006a1b10b5333c2f31ebaff

5 years agoRootcanal: Fix check in RejectSlaveConnection
Hansong Zhang [Fri, 21 Jun 2019 20:53:33 +0000 (13:53 -0700)]
Rootcanal: Fix check in RejectSlaveConnection

Test: manual
Change-Id: Ic37c123f5326e2cf5675f2eeb1734eb9514d86bc

5 years agoGAP: Correct the continuous pkt length in l2cap
Venkata Jagadeesh Garaga [Thu, 18 Apr 2019 11:43:49 +0000 (17:13 +0530)]
GAP: Correct the continuous pkt length in l2cap

L2cap continuous pkt length wrongly calculated in
reassembly logic when remote sends more data
than expected.

Wrong pkt length leading to memory corruption

Hence the Correct the continuous pkt length in
l2cap reassembly logic.

Change-Id: I758d9e31465b99e436b9b1841320000f08186c97
CRs-Fixed: 2434229
Bug: 135239489

5 years agoRootcanal: detect HCI socket close
Hansong Zhang [Wed, 19 Jun 2019 23:53:15 +0000 (16:53 -0700)]
Rootcanal: detect HCI socket close

Test: manual
Change-Id: I609f917061e5d83e011edfeb61de281ff45b13e4

5 years agoMerge "Extend setup acts script with more helpful information on failure"
Chris Manton [Thu, 20 Jun 2019 18:22:04 +0000 (18:22 +0000)]
Merge "Extend setup acts script with more helpful information on failure"

5 years agoHCI layer: Gracefully handle multiple incoming ACL
Hansong Zhang [Wed, 19 Jun 2019 18:21:37 +0000 (11:21 -0700)]
HCI layer: Gracefully handle multiple incoming ACL

Test: bluetooth_test_gd
Change-Id: Ieeaf9ba516f998d8c0bf13c5032cf231361e091d

5 years agoOS Queue: Add Enqueue Buffer
Hansong Zhang [Wed, 19 Jun 2019 21:53:16 +0000 (14:53 -0700)]
OS Queue: Add Enqueue Buffer

Enqueue Buffer is a common interface to handle RegisterEnqueue() and
UnregisterEnqueue() according to current buffer size

Test: bluetooth_test_gd
Change-Id: I5b3ef749cd09f866a6c676af403ab6fa39d34701

5 years agoHCI Controller: Read BD_ADDR
Hansong Zhang [Tue, 18 Jun 2019 23:04:01 +0000 (16:04 -0700)]
HCI Controller: Read BD_ADDR

Stack needs to know BD_ADDR, when it reports its own address to facade

Test: bluetooth_test_gd
Change-Id: I77754bb89f3638a6b15a3037d0427754b439cdcf

5 years agoExtend setup acts script with more helpful information on failure
Chris Manton [Wed, 19 Jun 2019 17:54:04 +0000 (10:54 -0700)]
Extend setup acts script with more helpful information on failure

Test: source ./setup_acts.sh
Change-Id: If04190a79a175d5f6f11c168286d6a48a64be9ea

5 years agoHCI: ACL Manager
Hansong Zhang [Tue, 7 May 2019 00:54:51 +0000 (17:54 -0700)]
HCI: ACL Manager

ACL manager is the interface for user layer (L2CAP) to manage connection
and send/receive data packets

Test: atest --host bluetooth_test_gd
Change-Id: I43aa5aabd2474aca5e0b4bae06a6cbfae56fd156

5 years agoMerge "Limit sniff mode for Nintendo Pro Controller to 11.25ms"
Treehugger Robot [Tue, 18 Jun 2019 19:44:27 +0000 (19:44 +0000)]
Merge "Limit sniff mode for Nintendo Pro Controller to 11.25ms"

5 years agoLimit sniff mode for Nintendo Pro Controller to 11.25ms
Andre Eisenbach [Thu, 13 Jun 2019 18:50:57 +0000 (11:50 -0700)]
Limit sniff mode for Nintendo Pro Controller to 11.25ms

Bug: 133410149
Test: manual
Change-Id: I4bffb759323bedd36e754cf758ac1d61cffc886e

5 years agoFix coverage build
Jakub Pawlowski [Tue, 18 Jun 2019 12:50:07 +0000 (14:50 +0200)]
Fix coverage build

Bug: 135496567
Change-Id: I0de650ce2987926098577e7ab690c0bd9409e39a

5 years agoStack manager: Clear handler during ShutDown()
Hansong Zhang [Fri, 14 Jun 2019 01:31:40 +0000 (18:31 -0700)]
Stack manager: Clear handler during ShutDown()

* Clear StackManager.handler_ before it is deleted
* Use local variable promise in StartUp and ShutDown
* Add unit test

Test: bluetooth_test_gd
Change-Id: I0a6de64c5f159fdf4c97c123aa3fa2f37b2b7e34

5 years agoImprove blocking queue
Hansong Zhang [Sat, 15 Jun 2019 15:12:55 +0000 (08:12 -0700)]
Improve blocking queue

Instead of take_for(), add a helper function to wait until the queue is
non-empty, so we don't require T to have a empty constructor.

Test: bluetooth_test_gd
Change-Id: Ia30a8149646fc75ecf19778888636c4129dbf100

5 years agoPDL: Make GetPayload() const
Myles Watson [Fri, 17 May 2019 21:41:00 +0000 (14:41 -0700)]
PDL: Make GetPayload() const

Test: bluetooth_packet_parser_test
Change-Id: Icd2265863c694c0f794211e161bd50b6a20c25a5

5 years agoHAL: Add unregisterIncomingPacketCallback
Myles Watson [Tue, 11 Jun 2019 20:46:15 +0000 (13:46 -0700)]
HAL: Add unregisterIncomingPacketCallback

Test: bluetooth_test_gd
Change-Id: I17f8227c351451b4249c2a005ea4428ace734dc9

5 years agoHCI: Add a controller for properties and credits
Myles Watson [Mon, 3 Jun 2019 23:33:59 +0000 (16:33 -0700)]
HCI: Add a controller for properties and credits

Test: bluetooth_test_gd --gtest_filter=*ControllerT*
Change-Id: Icd7c58e2e8314f6a75874ea7a98a1e23e8307ab6

5 years agoMerge "HCI: HCI command credit and timeout handling"
Treehugger Robot [Thu, 13 Jun 2019 20:28:27 +0000 (20:28 +0000)]
Merge "HCI: HCI command credit and timeout handling"

5 years agoFix for BluetoothGattCallback.onConnectionStateChange being called more than once
Jakub Pawlowski [Thu, 13 Jun 2019 14:31:53 +0000 (16:31 +0200)]
Fix for BluetoothGattCallback.onConnectionStateChange being called more than once

This patch fixes the issue, where the onConenctionStateCallback is being
called twice when device is connected. This happens only if device was
connected before, and the physical connection was kept alive.

This issue was introduced during white list refactor.

Test: GattConnectTest:test_gatt_connect_in_quick_succession
Bug: 117182283
Change-Id: Id94db9429e31224ef35eb2c99c0f9a65e7c27d32

5 years agoHCI: HCI command credit and timeout handling
Myles Watson [Wed, 12 Jun 2019 21:57:46 +0000 (14:57 -0700)]
HCI: HCI command credit and timeout handling

Test: bluetooth_gd_test
Change-Id: Iff11fd2e21f71c23d716f7ca5f920490dd7c79f3

5 years agoHCI layer: Synchronize API with handler
Hansong Zhang [Tue, 11 Jun 2019 23:02:35 +0000 (16:02 -0700)]
HCI layer: Synchronize API with handler

In HciLayer::impl, synchronize command_queue_, event_handlers_ with
handler within HciLayer module.

Use member function send_acl and send_sco instead of callback function.

Test: atest --host bluetooth_test_gd
Change-Id: Ibd541578828896fe9a5ccb42be7987a0fb556f6c

5 years agoReplace std::function with base::Closure
Hansong Zhang [Fri, 7 Jun 2019 04:44:55 +0000 (21:44 -0700)]
Replace std::function with base::Closure

std::function doesn't support non-copyable arguments. Use base::Closure
and base::OnceClosure from libchrome instead.

Test: atest --host bluetooth_test_gd
Change-Id: Ic18bbc000730e8b0d7acff0097870bd258ee6150

5 years agoOS: Add ordering guarantees for Handler.Clear()
Myles Watson [Fri, 7 Jun 2019 15:57:16 +0000 (08:57 -0700)]
OS: Add ordering guarantees for Handler.Clear()

Assert that Clear() is called once before ~Handler()

Test: bluetooth_test_gd
Change-Id: I40f89d13a05deab5f0d7ab1596a9101b097ef52a

5 years agoOS: Add Reactor::WaitForUnregisteredReactable()
Myles Watson [Wed, 12 Jun 2019 17:19:17 +0000 (10:19 -0700)]
OS: Add Reactor::WaitForUnregisteredReactable()

Test: bluetooth_test_gd --gtest_filter=*ReactorTest*
Change-Id: I9328d6fcd40941b25d252abc563e2a933ec06c25

5 years agoLoad gatt_database if it is empty in bta_gattc_process_indicate
weichinweng [Tue, 11 Jun 2019 14:02:46 +0000 (22:02 +0800)]
Load gatt_database if it is empty in bta_gattc_process_indicate

If Service Changed indication is received but gatt_database is empty,
will try to load database from storage.

Bug: 131814072
Bug: 134994428
Test: 1.CTS Bluetooth LE Secure Test. 2.Unit test.
3. Pair BLE device via APP. 4. Pair device via Bluetooth Setting

Change-Id: Id3f3f0f33d5e0469a6f2ac6612fa9f5ea0b24142

5 years agoMerge "Revert "Open connection if it doesn't exsist in bta_gattc_process_indicate""
Jakub Pawlowski [Tue, 11 Jun 2019 18:18:48 +0000 (18:18 +0000)]
Merge "Revert "Open connection if it doesn't exsist in bta_gattc_process_indicate""

5 years agoRevert "Open connection if it doesn't exsist in bta_gattc_process_indicate"
Jakub Pawlowski [Tue, 11 Jun 2019 11:30:04 +0000 (11:30 +0000)]
Revert "Open connection if it doesn't exsist in bta_gattc_process_indicate"

This reverts commit ffc95919835bbf89d635516955bff1b3b8a17641.

Reason for revert: breaks HA bonding from within app.

Bug: 134942525
Change-Id: I824391b1c84b535d7f251e176a5169eb79921c7f

5 years agoOS: Update Handler unittest
Myles Watson [Fri, 7 Jun 2019 15:57:16 +0000 (08:57 -0700)]
OS: Update Handler unittest

Test: bluetooth_test_gd
Change-Id: I14bb8c8852d8749e9c531ac18f18a39c92dae922

5 years agoOS: Don't hold the lock while the callback runs
Myles Watson [Mon, 10 Jun 2019 20:10:52 +0000 (13:10 -0700)]
OS: Don't hold the lock while the callback runs

Test: bluetooth_test_gd \
     --gtest_filter=*unregister_from_different_thread*
Change-Id: Icd820cd1a68a6ec26f0284b5c2bd7ba673bebb0c

5 years agoDO NOT MERGE - Merge pie-platform-release (PPRL.190605.003) into master
The Android Open Source Project [Mon, 10 Jun 2019 16:32:28 +0000 (09:32 -0700)]
DO NOT MERGE - Merge pie-platform-release (PPRL.190605.003) into master

Bug: 134605042
Change-Id: Icf8a142122c66c40c9e906380778d1d0237ba4be

5 years agoMerge "DO NOT MERGE - Merge pi-platform-release (PPRL.190605.003) into stage-aosp...
TreeHugger Robot [Fri, 7 Jun 2019 07:06:20 +0000 (07:06 +0000)]
Merge "DO NOT MERGE - Merge pi-platform-release (PPRL.190605.003) into stage-aosp-master" into stage-aosp-master

5 years agoDO NOT MERGE - Merge pi-platform-release (PPRL.190605.003) into stage-aosp-master
Xin Li [Wed, 5 Jun 2019 22:41:48 +0000 (15:41 -0700)]
DO NOT MERGE - Merge pi-platform-release (PPRL.190605.003) into stage-aosp-master

Bug: 134605042
Change-Id: I5be87422d75fb89d35135a5e087920fae1f6b2d6

5 years agoMerge "OS: Create Alarms on a Handler's thread"
Myles Watson [Wed, 5 Jun 2019 23:41:55 +0000 (16:41 -0700)]
Merge "OS: Create Alarms on a Handler's thread"
am: e1c1b2d8f6

Change-Id: Ie4238a454195704381a14337cf6c62ba340569f4

5 years agoMerge "OS: Create Alarms on a Handler's thread"
Treehugger Robot [Wed, 5 Jun 2019 23:15:28 +0000 (23:15 +0000)]
Merge "OS: Create Alarms on a Handler's thread"

5 years agoOS: Create Alarms on a Handler's thread
Myles Watson [Mon, 3 Jun 2019 16:25:28 +0000 (09:25 -0700)]
OS: Create Alarms on a Handler's thread

Test: bluetooth_test_gd --gtest_filter=*Alarm*
Change-Id: I017a5f74f1d72468ca487536c88a0cf3eb48ddea

5 years agoRename and reset the proirity of HID host thread
Ugo Yu [Wed, 5 Jun 2019 17:30:25 +0000 (10:30 -0700)]
Rename and reset the proirity of HID host thread
am: 4e25ef13b2

Change-Id: If957c7e793d4ae2462d9b1c5a57e17a91224d02a

5 years agoRename and reset the proirity of HID host thread
Ugo Yu [Wed, 5 Jun 2019 12:08:29 +0000 (20:08 +0800)]
Rename and reset the proirity of HID host thread

* Rename the HH event polling thread to bt_hh_thread
* HH event polling thread is created by bt_main_thread
  with RT priority. Lower the thread priority since the
  tasks in this thread is not timing critical

Bug: 131787936
Test: Connect to a HID device
      Run "adb shell ps -A -T -Z -O rtprio"
Change-Id: Ibd983e96bc339393842d4c2e2aa226534095e225

5 years agoUse Start for testing and add a Stop timeout
Myles Watson [Wed, 5 Jun 2019 02:41:15 +0000 (19:41 -0700)]
Use Start for testing and add a Stop timeout
am: 879fbfbed8

Change-Id: I3ae3d628144a8aadd91f86814513f28413d4d60e

5 years agoSnap for 5524043 from d0b9f6155d878426fa948b28b51b4b4c5989201e to pi-platform-release
android-build-team Robot [Wed, 5 Jun 2019 01:45:50 +0000 (01:45 +0000)]
Snap for 5524043 from d0b9f6155d878426fa948b28b51b4b4c5989201e to pi-platform-release

Change-Id: Id0f4c260caf8b1b91cca9955c2a57e5c194574ba

5 years agoHearing Aid: properly track audio Suspend/Resume
Jakub Pawlowski [Wed, 5 Jun 2019 01:02:17 +0000 (18:02 -0700)]
Hearing Aid: properly track audio Suspend/Resume
am: 054762bcfe

Change-Id: I3aa6513dab1773d521933bc69fb1eb731d6835f1

5 years agoUse Start for testing and add a Stop timeout
Myles Watson [Tue, 7 May 2019 00:54:51 +0000 (17:54 -0700)]
Use Start for testing and add a Stop timeout

Test: atest --host bluetooth_test_gd
Change-Id: Ib966f46a35572dfbe05a10e3d44c4b4503d616a3

5 years agoHearing Aid: properly track audio Suspend/Resume
Jakub Pawlowski [Tue, 4 Jun 2019 21:23:16 +0000 (23:23 +0200)]
Hearing Aid: properly track audio Suspend/Resume

When audio is suspended or resumed, we are notified by OnAudioSuspend or
OnAudioResume callback. Unfortunately, when we are the one triggering
the HearingAidAudioSource::Stop(), we would not receive the suspend
callback. This is causing HA to believe audio is being streamed when
it's not.

This patch fixes that by setting audio_running to false when we make
call to Stop()

Bug: 132793574
Test: Play audio, restart Hearing Aid, verify START command is not being
sent

Change-Id: I3c4551114ac275ea8c72f64a8d036373429acd6d

5 years agoOS: Add death tests for en/de-queue registration
Myles Watson [Mon, 3 Jun 2019 21:55:31 +0000 (14:55 -0700)]
OS: Add death tests for en/de-queue registration
am: b06e0b59cb

Change-Id: Ifcbaec5cd56ec89e1a4a965e8b53b38a085f51bf

5 years agoRevert "OS: Construct Handler using Reactor"
Myles Watson [Mon, 3 Jun 2019 21:34:58 +0000 (14:34 -0700)]
Revert "OS: Construct Handler using Reactor"
am: dde08cdba3

Change-Id: I866c437c67e72b0b8f0372f3aa02a1f463f143c8

5 years agoOS: Add death tests for en/de-queue registration
Myles Watson [Mon, 3 Jun 2019 16:13:21 +0000 (09:13 -0700)]
OS: Add death tests for en/de-queue registration

Test: bluetooth_gd_test
Change-Id: Iadf126018a2c919fa10096506009674e7a2cd73c

5 years agoRevert "OS: Construct Handler using Reactor"
Myles Watson [Mon, 3 Jun 2019 16:06:26 +0000 (09:06 -0700)]
Revert "OS: Construct Handler using Reactor"

Reactors are an implementation-specific detail.

This reverts commit 0a2f52e692bb65cea7ecff7ce1b1e839b786d5c7.
Test: bluetooth_gd_test

Change-Id: If74a9e0f32671ba96a723e51eee495f2aebf1e7c

5 years agoMerge "BLE: [IOT] Initiate disconnection when encryption fails during pairing"
Sumit Deshmukh [Mon, 3 Jun 2019 07:42:51 +0000 (00:42 -0700)]
Merge "BLE: [IOT] Initiate disconnection when encryption fails during pairing"
am: d4ce321925

Change-Id: Ifd3589b0b55ba1501e84251351f41b56886b32dc

5 years agoMerge "BLE: [IOT] Initiate disconnection when encryption fails during pairing"
Treehugger Robot [Mon, 3 Jun 2019 07:37:32 +0000 (07:37 +0000)]
Merge "BLE: [IOT] Initiate disconnection when encryption fails during pairing"