OSDN Git Service
Jack He [Fri, 25 May 2018 01:59:13 +0000 (18:59 -0700)]
HFP: Fix ACL collision handling and WBS update
* Correctly set control block handle when passing WBS event data to
upstream
* Correctly reject local outgoing connection when a colliding incoming
connection is connected to RFCOMM
* Add more logging to help with future debugging
Bug:
80251999
Test: connect HFP devices rapidly and toggle Bluetooth rapidly
testplans/details/166812/3975
Change-Id: I90616d70335ca68c40251fb722146924c4801cbe
Treehugger Robot [Fri, 25 May 2018 21:09:38 +0000 (21:09 +0000)]
Merge "Linux build fix"
Jakub Pawlowski [Thu, 24 May 2018 19:27:10 +0000 (12:27 -0700)]
Fix log level - requesting MTU is not error
Test: compilation
Change-Id: Idf99af22cf4d29f6fb3da08e86e36b3394617c4f
Jakub Pawlowski [Fri, 25 May 2018 16:31:26 +0000 (09:31 -0700)]
Linux build fix
Test: compile on linux
Change-Id: I831df72da8bdec17c4d9c87ebdfb333024eb964c
Treehugger Robot [Thu, 24 May 2018 22:52:05 +0000 (22:52 +0000)]
Merge "Add separate sniff mode settings for gamepads"
Treehugger Robot [Thu, 24 May 2018 22:52:05 +0000 (22:52 +0000)]
Merge changes from topic "ds4-support"
* changes:
Add UHID GET_REPORT functionality
Option to send data report through BTA_HhSetReport
Kim Low [Wed, 20 Dec 2017 23:11:08 +0000 (15:11 -0800)]
Add separate sniff mode settings for gamepads
For gamepads, the sniff intervals need to be much shorter. The
min is set to 14 slots (8.75ms) and max is set to 18 slots
(11.25ms).
Test: Load >=4.10 hid-sony driver, connect a DualShock4, check its
responsiveness.
Wait for 5 minutes, wake it up (if it went into PARK mode)
and check that it's still as responsive.
Furthermore, use a Bluetooth sniffer to confirm the sniff
interval.
Bug:
38511270
Change-Id: I27e2e0c8e88ab51800c4976e0971c92a3793f8d2
Kim Low [Thu, 6 Apr 2017 20:16:26 +0000 (13:16 -0700)]
Add UHID GET_REPORT functionality
GET_REPORT wasn't supported previously. >=4.10 hid-sony driver
requires this feature to get the calibration data for DualShock4.
To be backwards compatible with kernel 3.10, UHID_FEATURE and
UHID_FEATURE_ANSWER are used instead of UHID_GET_REPORT and
UHID_GET_REPORT_REPLY. Also, UHID_SET_REPORT functionality cannot
be supported since it's not implemented in kernel 3.10.
Test: Load >=4.10 hid-sony driver, connect a DualShock4, and check
that the DualShock4 LED turns blue, which confirms both
get feature report and output data report working.
Bug:
38511270
Change-Id: Ic28760f423cc09754fd32a107a499be6677ca747
Kim Low [Thu, 6 Apr 2017 19:33:14 +0000 (12:33 -0700)]
Option to send data report through BTA_HhSetReport
Drivers may send SET_FEATURE_REPORT by using type UHID_OUTPUT
and output.rtype UHID_FEATURE_REPORT, or send OUTPUT_DATA_REPORT
by using type UHID_OUTPUT and output.rtype UHID_OUTPUT_REPORT.
For type UHID_OUTPUT, the Fluoride stack calls btif_hh_setreport()
which then calls BTA_HhSetReport() correspondingly. Hence it is
necessary for BTA_HhSetReport() to handle both the output.type
UHID_FEATURE_REPORT (BTA_HH_RPTT_FEATURE) and UHID_DATA_REPORT
(BTA_HH_RPTT_OUTPUT).
Test: No stand-alone test.
Bug:
38511270
Change-Id: I210f6338d3152dad100920dc8a1eb69b563b70ae
Sunny Kapdi [Wed, 23 May 2018 22:14:35 +0000 (15:14 -0700)]
A2DP Offload: Don't crash on repeated endSession
AudioOffload endSession is called from multiple places.
Do not crash if session has already ended.
Also, added/enabled extra log messages to help debug similar issues.
Bug:
80148693
Test: Manual
Change-Id: I409c0146f9629cee6bdabf16e52e88201ee02267
Treehugger Robot [Thu, 24 May 2018 03:37:54 +0000 (03:37 +0000)]
Merge "GATT: Fix GATT error response for execute write"
Treehugger Robot [Wed, 23 May 2018 23:59:08 +0000 (23:59 +0000)]
Merge "Increase LE connection interval with bonded Hearing Aids"
Treehugger Robot [Wed, 23 May 2018 23:52:58 +0000 (23:52 +0000)]
Merge "Enable the AVRCP Service by default (2/2)"
Ajay Panicker [Wed, 11 Apr 2018 18:16:26 +0000 (11:16 -0700)]
Enable the AVRCP Service by default (2/2)
Bug:
80188446
Test: Flash a device and see that AvrcpTargetService is enabled
Change-Id: I1ad1fff07b5ee6c553fc89a75e649789d82f85cc
Merged-In: I1ad1fff07b5ee6c553fc89a75e649789d82f85cc
Stanley Tng [Wed, 23 May 2018 01:15:42 +0000 (18:15 -0700)]
Increase LE connection interval with bonded Hearing Aids
When there are bonded Hearing Aids device, increase the minimum LE
Connection Interval to reduce the audio noises on the devices.
Bug:
80079923
Test: Manual test with RAT mouse and HA devices
Change-Id: I589bc574ef7ff3754a149e30fb3c0a685ce27823
Treehugger Robot [Wed, 23 May 2018 20:46:44 +0000 (20:46 +0000)]
Merge "HFP: Ignore DISCONNECTED state in PhoneStateChange"
Jack He [Wed, 23 May 2018 00:35:57 +0000 (17:35 -0700)]
HFP: Ignore DISCONNECTED state in PhoneStateChange
* DISCONNECTED state is a transient state from Telecom service and will
always lead to IDLE state when the call is completely disconnected
* This state should be ignored as HFP specification does not handle
cases when a call is being disconnected
Bug:
78674822
Test: Receive incoming call and hangup
Change-Id: Icebdf9b5fdffad3e2b78645d4f0c69ec13b2604c
Pavlin Radoslavov [Wed, 23 May 2018 14:40:09 +0000 (07:40 -0700)]
Reduce A2DP/AVDTP related dumpsys output
* Don't print control blocks that are not in use
* Print some sections only if the runtime trace level is DEBUG(=5) or above
* Renamed section "A2DP Codecs and Peers State:" to
"A2DP Peers State:"
Bug:
80179152
Test: Manual
Change-Id: I9fcd7387ed469094132d5be989d4976ce103cfc8
Subramanian Srinivasan [Wed, 23 May 2018 02:35:48 +0000 (19:35 -0700)]
GATT: Fix GATT error response for execute write
Usecaes:
Execute GATT/SR/GAW/BI-09C
Expected Result:
Test case passes
Observed Result:
Unable to pass the test cases
Root Cause:
Incorrect error response sent by DUT if there is no pending write request
Fix:
Send GATT_INVALID_OFFSET error when no pending write request
Test: GATT/SR/GAW/BI-09C passes
Bug:
80168519
Change-Id: I74e723ab0e39ce04e21f929a16dffcd996d1d23e
Pavlin Radoslavov [Wed, 23 May 2018 00:56:22 +0000 (17:56 -0700)]
Explicitly stop the stream when the A2DP session ends
Note: this needs to be done only for the A2DP HW offload scenario.
For the software data path, this will be done by the Audio HAL.
Bug:
80117050
Test: Manual
Change-Id: I4397d219d82d779706e946f0c7f833c1e93e91f4
Treehugger Robot [Tue, 22 May 2018 23:01:26 +0000 (23:01 +0000)]
Merge "Update connection parameters just once before GATT discovery"
Joseph Pirozzo [Tue, 22 May 2018 22:20:02 +0000 (22:20 +0000)]
Merge "Support AVRCP Controller on JNI thread"
Jakub Pawlowski [Tue, 22 May 2018 21:15:31 +0000 (14:15 -0700)]
Update connection parameters just once before GATT discovery
Call to L2CA_EnableUpdateBleConnParams is already made just before
call to bta_gattc_set_discover_st
Test: compilation
Change-Id: I30939065b5486e20c2f6f456dde96266e9395690
Treehugger Robot [Tue, 22 May 2018 18:17:38 +0000 (18:17 +0000)]
Merge "HFP: Set audio handle for active device during incoming call"
Treehugger Robot [Tue, 22 May 2018 17:32:18 +0000 (17:32 +0000)]
Merge "Use the effective peer MTU when preparing the codec configuration"
Treehugger Robot [Tue, 22 May 2018 17:25:31 +0000 (17:25 +0000)]
Merge "Don't mix internal AVDTP state when connecting to two devices"
Treehugger Robot [Tue, 22 May 2018 16:28:29 +0000 (16:28 +0000)]
Merge "gatt_api: Avoid possible NULL dereference"
Pavlin Radoslavov [Tue, 22 May 2018 09:03:20 +0000 (02:03 -0700)]
Use the effective peer MTU when preparing the codec configuration
Added new method A2dpCodecConfig::getEffectiveMtu() and use it
to obtain the effective MTU per peer per codec.
The effective peer MTU could be smaller than the one reported
by the peer (e.g., for interoperability reasons).
Bug:
77913350
Test: Manual
Change-Id: Idd5230681ac5856fd18dd33ac48723c6ea609e16
Greg Kaiser [Tue, 22 May 2018 13:59:48 +0000 (06:59 -0700)]
gatt_api: Avoid possible NULL dereference
We move a logging statement which dereferences a NULL pointer
until after the NULL check, and expand the error message for
the NULL check to include the function name.
Test: TreeHugger
Change-Id: Ib5134b0d6b9ec5da95ee62da9412b977925000ee
Pavlin Radoslavov [Fri, 18 May 2018 03:38:44 +0000 (20:38 -0700)]
Don't mix internal AVDTP state when connecting to two devices
There is a race condition when connecting to two devices, and
the connection to one of the devices is not powered on.
Because of the race condition, the wrong tBTA_AV_LCB entry inside
bta_av_sig_chg() might be allocated for the connection to
the device that is powered on. As a result of that, when
the connection attempt to the powered off device times out,
we will use the wrong bta_handle to close the existing AVDTP connection to
the device that is connected.
Also:
- Add a new function BTA_AvObtainPeerChannelIndex() to select the
appropriate AvdtpCcb entry if there an outgoing connection request
while an incoming connection is received.
- Added/updated log messages to help debugging similar issues in the future
- Removed unnecessary SetActivePeer() call inside the BtifAv state
machine for A2DP Source to avoid additional internal/transient glitches
Test: Manual
Bug:
79697137
Change-Id: Ie55e3dcf6c6a15637ce3631f2828548a2423d881
Hemant Gupta [Tue, 22 May 2018 03:55:50 +0000 (09:25 +0530)]
GATT: Fix usage of 16 and 32 bit UUID's in Discover services by UUID
Fix improper usage of 16 and 32 bit UUID's in Disocever services by UUID
Fixes PTS test cases GATT/CL/GAD/BV-08-C and GATT/CL/GAR/BV-03-C.
Test: PTS test cases GATT/CL/GAD/BV-08-C and GATT/CL/GAR/BV-03-C passes
Bug:
80095184
Change-Id: Ia0a26bd20ee68c5c7db0bc00036634f6719f25e9
Jack He [Tue, 22 May 2018 00:09:29 +0000 (17:09 -0700)]
HFP: Set audio handle for active device during incoming call
* Set audio handle for active device during incoming call
* Change debug level logging to warning level when SCO is not allowed to
open or when RING command is not allowed to be sent
Bug:
77949569
Test: connect with HFP devices and receive incoming call
Change-Id: Ibc2caf740f94817ae725786e35e8592390167ce2
Jakub Pawlowski [Fri, 18 May 2018 22:57:01 +0000 (15:57 -0700)]
Simplify bta_gattc_sdp_callback
* join multiple if statements to improve readability
* malloc and free memory just once for tBTA_GATTC_CB_DATA
Test: compilation
Change-Id: I907645ed04ed4b628a3b24785b1ccd16b69d83bb
Treehugger Robot [Mon, 21 May 2018 21:20:07 +0000 (21:20 +0000)]
Merge "HFP: Return SDP status to HFP layer"
Jakub Pawlowski [Mon, 21 May 2018 16:38:48 +0000 (09:38 -0700)]
Unify logging in gatt_api.cc
- always log conn_id as hex value
- use "=" instead of ":" as delimiter between name and value
- get rid of StringPrintf
Test: compilation
Change-Id: Ia35b79c3732b19661e4655d5cf0923b7e701985f
Jack He [Sun, 20 May 2018 03:05:02 +0000 (20:05 -0700)]
HFP: Return SDP status to HFP layer
* Fix an error introduced in change Ic0b4498dd623d0ea31b4513d6b7861cae390bc72
so that SDP status is sent up to the HFP BTA layer
* With SDP status correctly passed up, HFP BTA layer can correctly
determine when to continue SDP search for HSP
* When open connection to HFP or HSP devices, use a control block's
registered services instead of passing in opening services every time
from BTIF layer
* Do not use a control block that are in CONNECTING or DISCONNECTING
state
* Add a crash in btif_hf.cc:connect_int() to gurantee that no control
block is in connecting or disconnecting state when connect_int is
called as it should be guranteed by the btif queue configuration
Bug:
74234576
Test: connect to headset, make calls and hangup
Change-Id: I5e2bce8c2f0f51bd3fd3e85e82827c5fb5e92887
Myles Watson [Fri, 18 May 2018 18:31:33 +0000 (11:31 -0700)]
AVRCP: Route CType NOT_IMPLEMENTED as a response
Bug:
79698590
Test: net_test_avrcp, Connect to the Anker MP140
Change-Id: Ie88dcea949ecb33bc3d76d86b07ab0396a21500d
tedwang [Tue, 15 May 2018 14:21:39 +0000 (22:21 +0800)]
Add General Reject for invalid PDU ID
Add Avrcp Browse General Reject packet
Respond general reject when undefined AVRCP Browsing PDU ID sent from
remote.
Bug:
79376704
Test: run host native test net_test_btpackets
Change-Id: I8a44d8e3f0cc5fac89e23217726c76ede4aff916
(cherry picked from commit
3fbf8b4fff8b52b781fa611e0b62c97bca28d76f)
Pavlin Radoslavov [Wed, 16 May 2018 02:21:03 +0000 (19:21 -0700)]
Don't update the MTU across multiple A2DP connections that are open
Remove function bta_av_chk_mtu() that updates the MTU to the smallest
value across all open A2DP connections, because that function is not needed.
Such MTU update is problematic for Multi-A2DP, because some codecs cannot
be initialized/used if the MTU is too small. E.g., for LDAC the
MTU value used for the codec initialization must be at least 679.
Bug:
79675742
Test: Manual - (1)Connect Bose QC35; (2)Connect Sony SRS-XB2; (3)Play music
Change-Id: I8048a1bf6df6d4d6291bf3570a95b5182af15b6a
Treehugger Robot [Wed, 16 May 2018 00:12:44 +0000 (00:12 +0000)]
Merge "Respond reject with INVALID_PARAMETER when register for invalid event ID"
Treehugger Robot [Tue, 15 May 2018 23:21:27 +0000 (23:21 +0000)]
Merge "Print extra error code if LDAC encoder fails to initialize"
tedwang [Tue, 15 May 2018 07:25:11 +0000 (15:25 +0800)]
Respond reject with INVALID_PARAMETER when register for invalid event ID
It should respond reject with INVALID_PARAMETER instead of
INVALID_COMMAND while remote registering for an invalid event ID
Bug:
79377562
Test: PTS AVRCP/TG/NFY/BI-01-C
Change-Id: Ic006cb2f6584216f9457af5576dd2d39adaa3cf5
(cherry picked from commit
d51c1dc6777eeb4d414c67e38999af436aaf71a8)
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
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
Joseph Pirozzo [Tue, 8 May 2018 03:44:23 +0000 (20:44 -0700)]
Support AVRCP Controller on JNI thread
Recent changes to threading of the BTA layer require that all JNI
callbacks are performed on the JNI thread. This change updates the APIs
to ensure that the data passed is thread safe.
Bug:
79145011
Test: Browse and Play music via AVRCP Controller.
Change-Id: I191658ea90c96bcf372e772119db6c31c9010230
(cherry picked from commit
4be70639dd863b8e8949f4db5aa2a332c1510412)
Jakub Pawlowski [Tue, 15 May 2018 02:00:07 +0000 (02:00 +0000)]
Merge "Removed alarm callback execution statistics"
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 20:47:52 +0000 (20:47 +0000)]
Merge "Use identity addr in BLE scan filter"
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
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"
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 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"
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 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
Treehugger Robot [Thu, 10 May 2018 00:58:48 +0000 (00:58 +0000)]
Merge "A2DP: Add logging when A2DP fails to open"
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
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:06:15 +0000 (08:06 +0000)]
Merge "Handle unbonding in Hearing Aid profile"
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 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:37:04 +0000 (17:37 +0000)]
Merge "Return early if vendor-specific command fails"
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: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:43:54 +0000 (06:43 +0000)]
Merge "BTM_BleClearBgConnDev: Return if there is no BLE"
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)
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 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:08:53 +0000 (20:08 +0000)]
Merge "Add AVRCP native logging to dumpsys"
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 [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 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: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 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:34:17 +0000 (15:34 +0000)]
Merge "Fix memory leak for BTRC_ITEM_MEDIA."