OSDN Git Service
Pavlin Radoslavov [Wed, 16 May 2018 00:05:35 +0000 (17:05 -0700)]
Merge "Print extra error code if LDAC encoder fails to initialize"
am:
3a537a3e07
Change-Id: I6dd95962d924044315b90a52ada37a8fc3c5b21a
Treehugger Robot [Tue, 15 May 2018 23:21:27 +0000 (23:21 +0000)]
Merge "Print extra error code if LDAC encoder fails to initialize"
Hansong Zhang [Tue, 15 May 2018 22:29:52 +0000 (15:29 -0700)]
AVRCP: Respond UID Changed for invalid Get Item Attributes command
am:
335d6e62b0
Change-Id: I90881349400f9d62723119fda172255bae1801b9
tedwang [Tue, 15 May 2018 22:29:28 +0000 (15:29 -0700)]
Add respond Reject with Invalid parameter for Unknown Capability ID
am:
bf514e3954
Change-Id: I03cf9138cf3d7049cef4375a450d05dba36d5215
Hansong Zhang [Mon, 14 May 2018 18:29:20 +0000 (11:29 -0700)]
AVRCP: Respond UID Changed for invalid Get Item Attributes command
When we receive GetItenAttributes command with an invalid UidCounter
other than 0x0000, we should reply UID Changed (0x05)
Bug:
79270308
Test: PTS AVRCP/TG/MCN/CB/BI-05-C; unit test
Change-Id: I819991d083944de5a08b0cd4fd0fb33c63f0142a
Hansong Zhang [Tue, 15 May 2018 20:29:28 +0000 (13:29 -0700)]
Merge "AVRCP: Verify SetBrowsedPlayer player ID"
am:
3103d311f4
Change-Id: I1bb359ff06ed6414ccc0c6440a2b9000caba871b
tedwang [Wed, 9 May 2018 06:28:04 +0000 (14:28 +0800)]
Add respond Reject with Invalid parameter for Unknown Capability ID
Add handle Get Capabilities with Unknown Capability ID and unit test
for this.
Bug:
79269978
Test: Run host native test net_test_avrcp
Change-Id: I2cb606bcb6462190354bb471577d9383e43649c1
(cherry picked from commit
5e872794641b89b63176befdb04865d5acf14aa3)
Treehugger Robot [Tue, 15 May 2018 20:13:30 +0000 (20:13 +0000)]
Merge "AVRCP: Verify SetBrowsedPlayer player ID"
Hansong Zhang [Mon, 14 May 2018 23:48:58 +0000 (16:48 -0700)]
AVRCP: Verify SetBrowsedPlayer player ID
IUT should reject the invalid SetBrowsedPlayer command sent from PTS.
Bug:
79377126
Test: PTS AVRCP/TG/MPS/BI-02-C
Change-Id: I2afde442e3b3563f4a1a37e2914c9b16fe07e8fc
Pavlin Radoslavov [Tue, 15 May 2018 10:19:41 +0000 (03:19 -0700)]
Print extra error code if LDAC encoder fails to initialize
Also, add a missing CHECK() assert that the LDAC handle is valid.
Bug:
79675742
Test: Code compilation
Change-Id: I4bd51ed978eadc2aecc27d199e6f01bb31c9a631
Jakub Pawlowski [Tue, 15 May 2018 02:12:37 +0000 (19:12 -0700)]
Merge "Removed alarm callback execution statistics"
am:
2190a20ef6
Change-Id: I12606fc5282b3c1c76d0942240f87f7a2eeec96f
Jakub Pawlowski [Tue, 15 May 2018 02:00:07 +0000 (02:00 +0000)]
Merge "Removed alarm callback execution statistics"
Jakub Pawlowski [Mon, 14 May 2018 23:41:17 +0000 (16:41 -0700)]
Merge "Mask "LE Enhanced Connection Complete" when BLE_PRIVACY_SPT=FALSE"
am:
ff38a2925a
Change-Id: I59cc169f1bfd172a1c2acb358f3b60ad389db562
Treehugger Robot [Mon, 14 May 2018 23:28:45 +0000 (23:28 +0000)]
Merge "Mask "LE Enhanced Connection Complete" when BLE_PRIVACY_SPT=FALSE"
Jakub Pawlowski [Thu, 19 Apr 2018 09:32:40 +0000 (02:32 -0700)]
Mask "LE Enhanced Connection Complete" when BLE_PRIVACY_SPT=FALSE
The code which handles this event is protected by an #ifdef. This was
causing connections to be established, but never detected by host.
Bug:
78264903
Test: establish connection to LE device with privacy disabled
Change-Id: Iea35016108bcbda64427250cc06258c422c1fdce
Pavlin Radoslavov [Mon, 8 Jan 2018 19:37:05 +0000 (11:37 -0800)]
Removed alarm callback execution statistics
Updating the alarm state after the callback returns can be problematic
in case the callback itself deleted the alarm.
Bug:
67110137
Test: Manual
Change-Id: Id4de06eebedb792cadd63d09efb68672e9bddc69
Jakub Pawlowski [Mon, 14 May 2018 21:03:42 +0000 (14:03 -0700)]
Merge "Use identity addr in BLE scan filter"
am:
e8a0bfd2ba
Change-Id: Iad5b0b9d3da84e77941f369837d0cd8e71f32e4a
Jakub Pawlowski [Mon, 14 May 2018 20:47:52 +0000 (20:47 +0000)]
Merge "Use identity addr in BLE scan filter"
Ajay Panicker [Mon, 14 May 2018 18:37:17 +0000 (11:37 -0700)]
Merge "Use weak pointers for device.cc callbacks to prevent use after delete"
am:
1819a3f240
Change-Id: I0115c55090ab3a725a6c99cc9c9b0e235cc14ca2
Ajay Panicker [Mon, 14 May 2018 18:26:16 +0000 (18:26 +0000)]
Merge "Use weak pointers for device.cc callbacks to prevent use after delete"
Claire Treyz [Fri, 11 May 2018 15:13:28 +0000 (08:13 -0700)]
Use identity addr in BLE scan filter
For BT controllers with the ability to filter scans and resolve RPAs on
controller, when trying to filter for a Public ID type address the
filter must use the static identity address of the peer device instead
of the random pseudo address.
Bug:
78888800
Test: manually tested filtered scanning for BLE peer with RPA with a
device with both offloaded RPA resolution & controller filtering
supported. Tested on a device with no controller filtering, which has
no changes, as expected.
Change-Id: I1d92e219bdbc9ba2399eae637a1f4623d695a3f8
Jack He [Fri, 11 May 2018 22:07:00 +0000 (15:07 -0700)]
Merge "HFP: Workaround for car kits that do not send AT+BAC command"
am:
7b958f6ea7
Change-Id: Ibb8634a3c9b01911825bb7a07a29fb02e95bf5ed
Treehugger Robot [Fri, 11 May 2018 21:53:02 +0000 (21:53 +0000)]
Merge "HFP: Workaround for car kits that do not send AT+BAC command"
Pavlin Radoslavov [Fri, 11 May 2018 21:14:42 +0000 (14:14 -0700)]
Merge "Explicitly restart audio processing when switching active device"
am:
2ffc9901cb
Change-Id: I41623252ea3f20c8afae1cf34612a3fb0ac32e2b
Treehugger Robot [Fri, 11 May 2018 21:06:43 +0000 (21:06 +0000)]
Merge "Explicitly restart audio processing when switching active device"
Pavlin Radoslavov [Thu, 10 May 2018 16:52:58 +0000 (09:52 -0700)]
Explicitly restart audio processing when switching active device
* Add internal APIs to restart A2DP session and use them
when switching the A2DP active device:
btif_a2dp_source_restart_session() and btif_a2dp_sink_restart_session() .
* Removed internal A2DP Source APIs that shouldn't be APIs
* Call immediately btif_a2dp_on_stopped() when processing
BTIF_AV_STOP_STREAM_REQ_EVT event to stop sooner the audio
datapath processing and report back to the Audio HAL call.
This eliminates the need for waiting for the BTA_AV_STOP_EVT
upcall event from the remote device.
* Added extra log information when processing events in the BtifAv
state machine.
Bug:
78360113
Test: Manual: streaming A2DP, change active device, change codec setup.
Change-Id: Icb356587af9cfaee7aea9f3f9bc95a0fe000fc52
Jack He [Tue, 1 May 2018 06:59:40 +0000 (23:59 -0700)]
HFP: Workaround for car kits that do not send AT+BAC command
* Some misbehaving HF devices (e.g. some Hyundai car kits) indicate
their support on Wide Band Speech and Codec Negotiation, but do not
send the required AT+BAC command during Service Level Connection
setup. However, such car kits still expect Fluoride to do codec
negotiation during SCO setup.
* This CL adds a workaround so that when HF indicates support for WBS
and codec negotiation, Fluoride will attempt codec negotiation even
though AT+BAC is never received.
* Store the SDP feature locally. If WBS is supported and no AT+BAC is
received, use the SDP features to set the suported codec.
Bug:
77883405
Test: make, connect SCO to and from Hyundai car kits
Change-Id: I2be6007022183cac5b9006f37089a587b4a67372
Ajay Panicker [Thu, 10 May 2018 22:51:31 +0000 (15:51 -0700)]
Merge "Add helper classes to auto indent newlines for ostreams"
am:
e3c041c4a4
Change-Id: Ifbcafaa32c70a3400b609772e0ec55bf1136abef
Ajay Panicker [Thu, 10 May 2018 19:39:32 +0000 (12:39 -0700)]
Use weak pointers for device.cc callbacks to prevent use after delete
Bug:
79400706
Test: Turn bluetooth off then on while connected to a device and playing
music
Change-Id: I2132bb01796a724fba6a36f4eca4f4795b919864
(cherry picked from commit
497e2833c983377ae501c15d5c66327c9c5dbafa)
Treehugger Robot [Thu, 10 May 2018 22:35:02 +0000 (22:35 +0000)]
Merge "Add helper classes to auto indent newlines for ostreams"
Hansong Zhang [Thu, 10 May 2018 22:01:45 +0000 (15:01 -0700)]
Merge "Hearing Aid: Add dumpsys log for audio packet"
am:
5ac698c04e
Change-Id: Id4a1078b2197eb60b321dcffbe76095ad0aee4b7
Treehugger Robot [Thu, 10 May 2018 21:23:46 +0000 (21:23 +0000)]
Merge "Hearing Aid: Add dumpsys log for audio packet"
Jakub Pawlowski [Thu, 10 May 2018 20:20:25 +0000 (13:20 -0700)]
HearingAid RemoveDevice - don't crash when profile not enabled
am:
f7c7cd2120
Change-Id: If3b9cbe1c96ac890c40726c034e71a4314138036
Jakub Pawlowski [Thu, 10 May 2018 13:42:43 +0000 (06:42 -0700)]
HearingAid RemoveDevice - don't crash when profile not enabled
Bug:
79468820
Test: Unbond non-hearing aid device when profile not enabled
Change-Id: I2a87f8725447045e7bc5b2a33facf1ce14b47c54
Hansong Zhang [Wed, 9 May 2018 21:39:56 +0000 (14:39 -0700)]
Hearing Aid: Add dumpsys log for audio packet
Add log for audio drops from audio HAL and buffer overflow
Add log for device capabilities and HiSyncId
Sample output:
Hearing Aid Manager:
<device1> connected
binaural right 0x...
Packet counts (enqueued/flushed) : 73557 / 773
Frame counts (enqueued/flushed) : 73557 / 773
<device2> connected
binaural left 0x...
Packet counts (enqueued/flushed) : 74172 / 886
Frame counts (enqueued/flushed) : 74172 / 886
Hearing Aid Audio HAL:
Counts (underflow) : 0
Bytes (underflow) : 0
Last update time ago in ms (underflow) : 0
Test: manual
Bug:
69623109
Change-Id: I5021b9214828b1846506638000f29af7343a3354
Jack He [Thu, 10 May 2018 01:08:49 +0000 (18:08 -0700)]
Merge "A2DP: Add logging when A2DP fails to open"
am:
9f5ab2434e
Change-Id: I825570e840f65192e4746eef762e1f8c36f6c135
Treehugger Robot [Thu, 10 May 2018 00:58:48 +0000 (00:58 +0000)]
Merge "A2DP: Add logging when A2DP fails to open"
Vinit Deshpande [Thu, 10 May 2018 00:18:59 +0000 (17:18 -0700)]
Merge "Fix LE cancel open when physical connection is established but not ready"
am:
cd40bfb8d7
Change-Id: I3e27ee66923fbc5eb6bd0357c6913ea82b904857
Vinit Deshpande [Wed, 9 May 2018 23:58:48 +0000 (23:58 +0000)]
Merge "Fix LE cancel open when physical connection is established but not ready"
Jack He [Wed, 9 May 2018 22:44:09 +0000 (15:44 -0700)]
A2DP: Add logging when A2DP fails to open
* Make sure we output a log line whenever A2DP start request returns a
failure state, namingly:
- A2DP_CTRL_ACK_FAILURE
- A2DP_CTRL_ACK_INCALL_FAILURE
- A2DP_CTRL_ACK_DISCONNECT_IN_PROGRESS
Bug:
74988740
Test: make, logging only change
Change-Id: I63280d6280bf9c3d3ee6c578c1be332f8a9a3be0
WENTAO WANG [Mon, 20 Nov 2017 21:10:07 +0000 (13:10 -0800)]
Fix LE cancel open when physical connection is established but not ready
Issue:
Cancel open does not work when the physical connection is established
but negotiation is not finished.
Fix:
Close the physical connection and release resources when fitting in this
situation.
Bug:
64230040
Test: test_cancel_open_ble_process
Change-Id: Ia23b5f3aab427b333d9d484b97e4cd4ff49f5319
Stanley Tng [Wed, 9 May 2018 20:29:13 +0000 (13:29 -0700)]
Merge "Fix PTS: TC_GATT_SR_UNS_BI_01_C sends unsupported opcode"
am:
11e1274a05
Change-Id: I7e48817c7b29522b2912d48ef1282282e7e833a9
Treehugger Robot [Wed, 9 May 2018 20:23:34 +0000 (20:23 +0000)]
Merge "Fix PTS: TC_GATT_SR_UNS_BI_01_C sends unsupported opcode"
Ajay Panicker [Thu, 3 May 2018 19:58:53 +0000 (12:58 -0700)]
Add helper classes to auto indent newlines for ostreams
Bug:
79167906
Test: adb shell dumpsys bluetooth_manager
Change-Id: I54484181abc438e90ade771fca6943c2b303e4db
Stanley Tng [Wed, 9 May 2018 17:39:37 +0000 (10:39 -0700)]
Fix PTS: TC_GATT_SR_UNS_BI_01_C sends unsupported opcode
In this PTS test, add code to send back an unsupported error response
when an unsupported OpCode is received.
Bug:
79347869
Test: Rerun and pass PTS test
Change-Id: Ibf95dbc18dabbe201850da675c7a1b2739624de9
Jakub Pawlowski [Wed, 9 May 2018 08:12:24 +0000 (01:12 -0700)]
Merge "Handle unbonding in Hearing Aid profile"
am:
ab22148a79
Change-Id: Icaee7201a4e47b471c60dcbc54eb2984d0cfa19f
Jakub Pawlowski [Wed, 9 May 2018 08:06:15 +0000 (08:06 +0000)]
Merge "Handle unbonding in Hearing Aid profile"
Dan Willemsen [Wed, 9 May 2018 06:06:07 +0000 (23:06 -0700)]
Merge "Remove unused `tags` property from Android.bp files"
am:
2b737b856d
Change-Id: Ie67b2d049583b8c9b25d4b0e8d1c26a25f700309
Dan Willemsen [Wed, 9 May 2018 05:59:03 +0000 (05:59 +0000)]
Merge "Remove unused `tags` property from Android.bp files"
Pavlin Radoslavov [Wed, 9 May 2018 03:27:34 +0000 (20:27 -0700)]
Fetch the presentation position only if the audio state is STARTED
am:
61d1e86c5b
Change-Id: I693595f6bf4c5a95c08d5859887f9f5ef41242bd
android-build-prod (mdb) [Wed, 9 May 2018 01:37:58 +0000 (18:37 -0700)]
Merge "HFP: Remove parameter to start/stopScoUsingVirtualVoiceCall"
am:
6e938867c3
Change-Id: I04318b2d604645b7aa566a4d3422df14ff0f50dc
Pavlin Radoslavov [Wed, 9 May 2018 01:00:24 +0000 (18:00 -0700)]
Fetch the presentation position only if the audio state is STARTED
The audio HAL will fetch the audio presentation position (for the
purpose of delay reporting if the Headset supports it) only if the
audio state is STARTED.
Otherwise, it will use the default value (e.g., the one used
when the Headset does not support delay reporting).
This avoids unnecessary transient re-opening of the HAL control path
between the Audio framework and Bluetooth native stack (e.g., during
shutdown).
Bug:
78360113
Test: Manual - A2DP streaming with Headsets that support delay reporting
Change-Id: I56f7e9373ba27606913c74fa818da40305df85d4
android-build-prod (mdb) [Wed, 9 May 2018 00:25:12 +0000 (00:25 +0000)]
Merge "HFP: Remove parameter to start/stopScoUsingVirtualVoiceCall"
Dan Willemsen [Wed, 9 May 2018 00:08:54 +0000 (17:08 -0700)]
Remove unused `tags` property from Android.bp files
The tags property is (and has always been) unused by Soong. The property has
been defined as a list of strings, and the `androidmk` converted any
LOCAL_MODULE_TAGS entries over to it, but we've never done anything with it.
In preparation for removing the definition from Soong, I'm removing it from all
Android.bp files in the tree.
Since this has never done anything, this is a no-op, but if you really did want
the Android.mk behavior, the proper way to define a module to be installed in
userdebug / eng builds is to use PRODUCT_PACKAGES_DEBUG or PRODUCT_PACKAGES_ENG
in the appropriate product makefile.
Change-Id: I48cba711acbc030a98aea674016a0d53f8b5e4aa
Exempt-From-Owner-Approval: global no-op build change
Test: remove `tags` from Soong, see errors go away.
Jakub Pawlowski [Tue, 8 May 2018 14:44:43 +0000 (07:44 -0700)]
Handle unbonding in Hearing Aid profile
Bug:
69623109
Change-Id: I3b1f778e414511a3748cebd2b0e233d638cd4d43
Fixes:
79207134
Test: unbond from Hearing Aid when connected or disconnected from it
android-build-prod (mdb) [Tue, 8 May 2018 17:46:03 +0000 (10:46 -0700)]
Merge "Return early if vendor-specific command fails"
am:
c2e46139c9
Change-Id: I277503a4a8c5b86536a77c97c6dec3417b56fe9a
android-build-prod (mdb) [Tue, 8 May 2018 17:37:04 +0000 (17:37 +0000)]
Merge "Return early if vendor-specific command fails"
Ajay Panicker [Tue, 8 May 2018 16:45:33 +0000 (09:45 -0700)]
Merge "Send correct key state and ignore keys from inactive device (1/2)"
am:
a7b6d3a8e1
Change-Id: Ie47e3adbafaa6c7a15bd5fc241324a16f07b2aaf
Ajay Panicker [Tue, 8 May 2018 16:37:15 +0000 (16:37 +0000)]
Merge "Send correct key state and ignore keys from inactive device (1/2)"
Myles Watson [Thu, 3 May 2018 18:15:50 +0000 (11:15 -0700)]
Return early if vendor-specific command fails
Add CHECK() statements to crash if the callback is passed the incorrect
opcode or if there are no parameters.
Bug:
76192234
Bug:
77495521
Test: Start Bluetooth with a BT 3.0 chip (or a simulated one)
Change-Id: Iddd9a8503b2cfd52b16fb1c59f40e108b478e7b6
android-build-prod (mdb) [Tue, 8 May 2018 01:16:19 +0000 (18:16 -0700)]
Merge "Fixed PTS: TC_GATT_SR_GAR_BI_01_C failure"
am:
2ff331f615
Change-Id: I0e6828ab55776941bd1e6315ebf83322b29b72f2
android-build-prod (mdb) [Tue, 8 May 2018 01:03:03 +0000 (01:03 +0000)]
Merge "Fixed PTS: TC_GATT_SR_GAR_BI_01_C failure"
Stanley Tng [Mon, 7 May 2018 21:58:36 +0000 (14:58 -0700)]
Fixed PTS: TC_GATT_SR_GAR_BI_01_C failure
When the GATT Read Request has bad handle parameters, returns the
GATT_INVALID_HANDLE error code instead of GATT_INVALID_PDU.
Bug:
79340029
Test: Rerun PTS
Change-Id: I9de576076d7f7aece0831ef57b01c07a24209010
Ajay Panicker [Fri, 4 May 2018 21:30:45 +0000 (14:30 -0700)]
Send correct key state and ignore keys from inactive device (1/2)
Also make it clearer whether the key state is pushed or released.
Bug:
79178216
Test: Run host native test net_test_avrcp
Change-Id: I8595ac97718bcb2af8f33643df4b9c8059a1b30b
Jack He [Thu, 3 May 2018 23:37:09 +0000 (16:37 -0700)]
HFP: Remove parameter to start/stopScoUsingVirtualVoiceCall
* Since HFP SCO routing is managed by setActiveDevice, there is no need
for an input parameter to start/stopScoUsingVirtualVoiceCall
Bug:
76114959
Test: build
Change-Id: I2a3f9f7cb1191e2831d30630b2e0c3bee4a0acdb
(cherry picked from commit
426e87e3bada2116580e74815c4e03db78b8105a)
android-build-prod (mdb) [Mon, 7 May 2018 06:52:14 +0000 (23:52 -0700)]
Merge "BTM_BleClearBgConnDev: Return if there is no BLE"
am:
1799f2fd0c
Change-Id: I59fd33764c7255fc5081ae7312764a36ea213dbe
android-build-prod (mdb) [Mon, 7 May 2018 06:43:54 +0000 (06:43 +0000)]
Merge "BTM_BleClearBgConnDev: Return if there is no BLE"
Ajay Panicker [Sat, 5 May 2018 00:10:21 +0000 (17:10 -0700)]
Implement GetTotalNumberOfItems response for AVRCP Browsing
am:
0128c377b9
Change-Id: Ide66d983cb695d264c36229ff7f238e92e080d35
Ajay Panicker [Fri, 27 Apr 2018 13:59:22 +0000 (06:59 -0700)]
Implement GetTotalNumberOfItems response for AVRCP Browsing
Bug:
78636552
Test: run host test net_test_avrcp
Change-Id: Ie05d23874317978eb619d0e56a89f2c880166a52
Merged-In: Ie05d23874317978eb619d0e56a89f2c880166a52
(cherry picked from commit
16aa6a075e5cbb7c97bbc639b876221038212b62)
Pavlin Radoslavov [Fri, 4 May 2018 18:39:43 +0000 (11:39 -0700)]
Increase the A2DP version from 1.2 to 1.3
am:
c35f912d29
Change-Id: Ic022543294f5c46e129fcbc1b7d73daf56ac42fe
Myles Watson [Fri, 4 May 2018 17:15:46 +0000 (10:15 -0700)]
BTM_BleClearBgConnDev: Return if there is no BLE
Bug:
77495521
Bug:
76192234
Test: Start Bluetooth with a BT 3.0 chip (or a simulated one)
Change-Id: I718b7532bbba6100dd51c0677a44d41a2db0ce26
Pavlin Radoslavov [Wed, 2 May 2018 22:09:42 +0000 (15:09 -0700)]
Increase the A2DP version from 1.2 to 1.3
Some headsets do not support properly the AVDTP 1.3 Delay Reporting
if the A2DP version is 1.2 .
Bug:
78409461
Test: Manual with Headsets that support AVDTP 1.3 Delay Reporting
TestTracker/161070
Change-Id: Ia1e3afb3b5159101bc65b036ca5bd9f55ed4c431
Myles Watson [Thu, 3 May 2018 22:43:44 +0000 (15:43 -0700)]
bta: Only call get_acl_data_size_ble for LE
am:
a11bb2dcc2
Change-Id: I20aab54c5a82166c5497b0142819b3b8d143acec
Myles Watson [Thu, 3 May 2018 18:13:55 +0000 (11:13 -0700)]
bta: Only call get_acl_data_size_ble for LE
Pass 0xFFFF (max uint16_t) to GAP_ConnOpen, which will call
get_acl_data_size_ble() to correct the value, but only when the
connection type is LE.
Bug:
77495521
Bug:
76192234
Test: Start Bluetooth with a BT 3.0 chip (or a simulated one)
Change-Id: If46ea249081fc058faf09bcb5149f21d8baf7aa7
Ajay Panicker [Thu, 3 May 2018 20:16:22 +0000 (13:16 -0700)]
Merge "Add AVRCP native logging to dumpsys"
am:
a0cebcac0a
Change-Id: I6f9493b23209f3f6bd0714f98d6a45d046205636
Ajay Panicker [Thu, 3 May 2018 20:08:53 +0000 (20:08 +0000)]
Merge "Add AVRCP native logging to dumpsys"
Hemant Gupta [Thu, 3 May 2018 10:12:42 +0000 (03:12 -0700)]
HID: Update state to disconnected in virtual unplug
am:
126397bc6e
Change-Id: I822afa75804afceee13a7b6cf6ef00d57764b31b
Hemant Gupta [Fri, 2 Mar 2018 04:59:25 +0000 (10:29 +0530)]
HID: Update state to disconnected in virtual unplug
Usecase:
1.Pair and connect DUT with Remote device
2.Disconnect Remote device from DUT (Settings menu)
3.Connect to Remote device from settings menu when Remote will not be
advertising.
4.With in 30 secs of connect command, delete the stored link key and then pair
and connect again to Remote device from settings menu
(when RD is advertising).
Expected Result:
Remote device should connect successfully.
Observed Result:
Remote device is shown in paired devices(settings menu)but not connected.
Root cause:
When virtual unplug happens device state is not cleared properly. So next
time when we are trying to connect its going to connected state.
Fix:
Update the current device state to BTHH_CONN_STATE_CONNECTING to
BTIF_HH_DEV_DISCONNECTED when virtual unplug happens.
Test: Issue is not seen after above steps
Fixes:
74082929
Change-Id: I8a325987ff5eb0a8e4f8708fc7c76b8a9ade6ccf
Ajay Panicker [Thu, 3 May 2018 01:31:47 +0000 (18:31 -0700)]
Use weak pointers instead of base::Unretained to prevent use after free
am:
0d33f58fe7
Change-Id: Ifb282b1ed69dac0494e509eca5a837f50e5451bf
Ajay Panicker [Wed, 2 May 2018 00:29:07 +0000 (17:29 -0700)]
Use weak pointers instead of base::Unretained to prevent use after free
Bug:
78517259
Test: Compile and switch users while AVRCP is connected
Change-Id: I9eb4482e4de52fed7750747afdc7cfb5402615a4
Ajay Panicker [Wed, 2 May 2018 23:23:13 +0000 (16:23 -0700)]
Add AVRCP native logging to dumpsys
Example output
AVRCP Target Native Service: 2 devices
d4:90:9c:0a:48:d0
Current Volume: 42
Current Browsed Player ID: -1
Registered Notifications:
Play Status
Last Play State: 2
Last Song Sent ID: ""
Current Folder: ""
MTU Sizes: CTRL=1020 BROWSE=332
Bug:
79167906
Test: adb shell dumpsys bluetooth_manager
Change-Id: I749dc3c568ac7793ac924ab1e46c3fc7ae42a260
android-build-prod (mdb) [Wed, 2 May 2018 20:14:57 +0000 (13:14 -0700)]
Merge "Ignore volume changed events from the non-active device"
am:
f38c2335f1
Change-Id: I60ce1dc8c3abbc25629b56564086cfca2239946a
android-build-prod (mdb) [Wed, 2 May 2018 19:59:48 +0000 (19:59 +0000)]
Merge "Ignore volume changed events from the non-active device"
android-build-prod (mdb) [Wed, 2 May 2018 18:26:27 +0000 (11:26 -0700)]
Merge "Hearing Aid: leave some radio time for other devices"
am:
792ef286f2
Change-Id: I4c46ec9ed8f3eb882dc8974a3448276a83fea250
android-build-prod (mdb) [Wed, 2 May 2018 18:19:53 +0000 (18:19 +0000)]
Merge "Hearing Aid: leave some radio time for other devices"
Ajay Panicker [Wed, 2 May 2018 17:05:24 +0000 (10:05 -0700)]
Ignore volume changed events from the non-active device
Bug:
78251684
Test: Run host native test net_test_avrcp
Change-Id: I164e9ded88c804da2ce8191c5f58cc053cfa6ecd
Ajay Panicker [Wed, 2 May 2018 18:01:53 +0000 (11:01 -0700)]
Merge "Use weak pointers to prevent callbacks from executing after cleanup"
am:
12f48d19e7
Change-Id: I9cad9114d2233330230fcc266b2015fbd8fe5d3a
Ajay Panicker [Wed, 2 May 2018 18:01:33 +0000 (11:01 -0700)]
Merge "Use the wrapped volume interface with the AVRCP conneciton handler"
am:
6acb481634
Change-Id: I4016ab7a8121cf626f35a7ceda094258ecb01d61
Ajay Panicker [Wed, 2 May 2018 17:55:48 +0000 (17:55 +0000)]
Merge "Use weak pointers to prevent callbacks from executing after cleanup"
Ajay Panicker [Wed, 2 May 2018 17:52:37 +0000 (17:52 +0000)]
Merge "Use the wrapped volume interface with the AVRCP conneciton handler"
Jakub Pawlowski [Thu, 15 Mar 2018 18:37:06 +0000 (11:37 -0700)]
Hearing Aid: leave some radio time for other devices
We should send maximum two packets in connection event, and they
should take less than 3.75ms with acknowledgements.
Leaving some radio time should make us able to keep third LE connection
to some less demanding devices.
Bug:
78364114
Bug:
69623109
Test: stream music through Hearing Aid and connect to some LE device
Change-Id: Ie97b9db456a957c11438208448c562435b1b0222
Joseph Pirozzo [Wed, 2 May 2018 15:42:06 +0000 (08:42 -0700)]
Merge "Fix memory leak for BTRC_ITEM_MEDIA."
am:
77bed94c2d
Change-Id: I53c846c4f6b772a03a6a1c97de82d0cbd9020fde
Joseph Pirozzo [Wed, 2 May 2018 15:34:17 +0000 (15:34 +0000)]
Merge "Fix memory leak for BTRC_ITEM_MEDIA."
Ajay Panicker [Thu, 19 Apr 2018 22:17:16 +0000 (15:17 -0700)]
Use weak pointers to prevent callbacks from executing after cleanup
Switch from using the instance directly to using weak pointers to the
instance. This causes any base::Callback objects that are bound to that
weak instance to be cleaned up if the weak pointer becomes invalid.
Bug:
78134184
Test: valgrind ./net_test_avrcp
--gtest_filter=*disconnectAfterCleanupTest* and see that there is an
invalid read before the fix and it is gone after.
Change-Id: I46c3175e62b87be165e468d014155f8d8154c08a
Pavlin Radoslavov [Tue, 1 May 2018 18:23:47 +0000 (11:23 -0700)]
Add a missing call to btif_av_stream_stop() for SetActivePeer(null)
am:
361e2a46fb
Change-Id: I70b0293e294f51871a23d0387697bc9ffe80a353
Pavlin Radoslavov [Tue, 1 May 2018 01:02:35 +0000 (18:02 -0700)]
Fix A2DP Suspend related multi-component deadlock
am:
2a3b9b597e
Change-Id: I4398d7b04c17b058e9c72599a0816719defd5159
Pavlin Radoslavov [Tue, 1 May 2018 00:57:34 +0000 (17:57 -0700)]
Add a missing call to btif_av_stream_stop() for SetActivePeer(null)
Without this call, the BtifAv state machine could be left in Started
state, while the A2DP media task timer is canceled.
This internal state inconsistency prevents the proper handling
of Audio HAL commands like SUSPEND - no ACK is returned and
the Audio HAL is blocked.
Bug: b/
78901123
Test: Manual - play music to Headset, select "play media to" > This device
resume music, select "play media to" > Bluetooth Headet
Change-Id: I11b280bea76de02f522e61ebb0a9d7eb5b50f993
Pulkit Bhuwalka [Mon, 30 Apr 2018 22:04:04 +0000 (15:04 -0700)]
Add ability to modify IO capability of Bluetooth device
am:
2bc59e5956
Change-Id: I908505b89e7db9040b1f3b515625e2c195b49640
Pavlin Radoslavov [Mon, 30 Apr 2018 20:39:20 +0000 (13:39 -0700)]
Fix A2DP Suspend related multi-component deadlock
Apparently, the processing of A2DP Suspend from the Audio HAL
could result in a deadlock across multiple components:
A2dpService -> AudioService -> Audio-BT HAL -> BT Native Stack ->
BT JNI upcall -> A2dpService
1) A2dpService -> AudioService:
- Waiting inside setActiveDevice() -> synchronized (mStateMachines) ->
mAudioManager.setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent()
- The mAudioManager call can be blocking: a followup call would wait
for the previous call to complete.
2) AudioService -> Audio-BT HAL
The AudioService is wating on the Audio-BT HAL to complete its request.
In this case the request is SUSPEND
3) Audio-BT HAL -> BT Native Stack
The Audio side of the Audio-BT HAL is waiting for the BT Native stack
to ACK the SUSPEND command.
More specifically, it is retrying few times with timeout of 250ms
each iteration.
4) BT Native Stack -> BT JNI upcall
- In the BT Native Stack the BtifAv FSM (see file btif/src/btif_av.cc)
is in state StateStarted and has received the
BTIF_AV_SUSPEND_STREAM_REQ_EVT because of the SUSPEND command from the
Audio HAL.
- As a result, the LocalSuspendPending flag has been set:
peer_.SetFlags(BtifAvPeer::kFlagLocalSuspendPending);
- Only after the above flag is reset, then the BT Native Stack will
ACK the SUSPEND command from the HAL
- The above flag will be reset when event BTA_AV_SUSPEND_EVT is received
from the underlying stack
- The BtifAv state machine has received the BTA_AV_SUSPEND_EVT event.
However, prior to clearing the pending status, the FSM tries to
report the audio state via JNI to the Java layer:
btif_report_audio_state();
...
peer_.ClearFlags(BtifAvPeer::kFlagLocalSuspendPending);
- Apparently, all the processing inside the BtifAv FSM is done on
the JNI thread, including the btif_report_audio_state() upcall.
5) BT JNI upcall -> A2dpService
- The btif_report_audio_state() upcall calls indirectly
A2dpNativeInterface.onAudioStateChanged() -> sendMessageToService() ->
A2dpService.messageFromNative()
- Within the A2dpService.messageFromNative() processing, there is
"synchronized (mStateMachines) {}" block, and the processing there
blocks because per (1) above A2dpService.setActiveDevice() is
already inside its own "synchronized (mStateMachines) {}" block
The above deadlock is fixed by the following:
- Modified the BTA_AV_SUSPEND_EVT processing such that
the clearing of the kFlagLocalSuspendPending flag is done BEFORE
the btif_report_audio_state()
- Modified the BtifAv FSM such that the internal processing of the FSM
events is done on the BTA thread instead of the JNI thread. Thus,
the FSM processing cannot be blocked by JNI upcalls.
Also:
- Updated the do_in_bta_thread() function to have a return value
so it is more aligned with the corresponding do_in_jni_thread()
implementation
- Updated the reordering of some other btif_report_*() upcalls inside
btif_av.cc so they are after the FSM internal processing in the
current state.
- Added few extra logs to the Audio-BT HAL (file audio_a2dp_hw.cc).
Bug:
72823323
Test: Disconnect/reconnect with Philips SBH7000 Headset
Change-Id: I7ccb558e458a8e90d0414f94463bda8d4b3fdc97
Joseph Pirozzo [Mon, 30 Apr 2018 19:23:18 +0000 (12:23 -0700)]
Fix memory leak for BTRC_ITEM_MEDIA.
Memory is allocated for each media item received from a remote phone for
AVRCP media browsing. Although the media item itself was freed, the
memory for each attribute was not freed. Move the allocation up to
the parent function such that it can be allocated and freed in the same
location.
Bug:
78222934
Test: dumpsys meminfo com.android.bluetooth
Change-Id: I217830441949642cd6ef0f96ac5fde9251452095