OSDN Git Service
Jakub Pawlowski [Fri, 17 Mar 2017 05:10:32 +0000 (22:10 -0700)]
Divide advertise data when needed
Bug:
30622771
Test: BleAdvertisingManagerTest.test_data_sender
Change-Id: I447fed753b08cef766d99ea8dfa47b1212a9ce03
Jakub Pawlowski [Fri, 17 Mar 2017 00:15:47 +0000 (17:15 -0700)]
Bluetooth 5 Periodic Advertising
This patch implements the initialization of Bluetooth 5 advertising.
Bug:
30622771
Test: manual
Change-Id: If06a6c827f1d8097aa3f019b99ebcb3933742d6c
Jakub Pawlowski [Fri, 17 Mar 2017 01:19:20 +0000 (18:19 -0700)]
LE Maximum Advertising Data Length (4/4)
Add ability to check maximum advertising data length.
Bug:
30622771
Test: manual
Change-Id: I0f3c806046157633f8e2106c1b2700c4277a2b4d
Treehugger Robot [Fri, 17 Mar 2017 04:00:31 +0000 (04:00 +0000)]
Merge "Use the correct tBTA_PAN type when copying the data in a callback"
Pavlin Radoslavov [Fri, 17 Mar 2017 02:09:31 +0000 (19:09 -0700)]
Use the correct buffer size when copying device inquiry response data
Bug:
36372989
Test: Running ASAN build
Change-Id: I6016e7609ba24db632222ff4613017e3be30b09c
Pavlin Radoslavov [Fri, 17 Mar 2017 01:54:55 +0000 (18:54 -0700)]
Use the correct tBTA_PAN type when copying the data in a callback
This fixes stack-buffer-overflow issue found using ASAN.
Previously, the original data had type "struct tBTA_PAN_SET_ROLE"
and similar, and eventually "memcpy(..., sizeof(tBTA_PAN))" would
copy data beyond the end of the data buffer.
Bug:
36367964
Test: Running ASAN build
Change-Id: I47210a501378023168a0dd71381e93a5051a4c71
Jakub Pawlowski [Sun, 12 Mar 2017 00:46:00 +0000 (16:46 -0800)]
Bluetooth 5 AdvertisingSet implementation (3/4)
This patch wires up fist methods of AdvertisingSet, making it possible
to start advertising and stop advertising. It also replaces legacy
implemementation with calls to new implementation.
Bug:
30622771
Test: sl4a ConcurrentBleAdvertisingTest
Change-Id: I843d8fc12ba1928c87e256a0fb6d730c9fa200e6
Jakub Pawlowski [Thu, 16 Mar 2017 21:47:55 +0000 (14:47 -0700)]
Fix net_test_stack_multi_adv
Change-Id: Ic28aa4a120d973bbf3f05d8022bc2c2e619562e2
Pavlin Radoslavov [Thu, 16 Mar 2017 11:54:21 +0000 (04:54 -0700)]
Fix an HCI race condition when transmitting a packet
There is a race condition when calling
event_command_ready() -> transmit_fragment() -> hci_transmit()
If right after hci_transmit() there is thread context switch
and another thread executes filter_incoming_event() for the same
command, the corresponding packet/command will be taken off the
commands_pending_response list and free()-ed.
However, after the execution on the first thread continues
within transmit_fragment(), the execution logic will continue using
the "packet" that was already free()-ed by the other thread.
To prevent this from happening, the "commands_pending_response_mutex"
within event_command_ready() has to protect the transmit_fragment()
execution and the update_command_response_timer() function right after it.
Also:
* Changed the "commands_pending_response_mutex" to recursive_mutex
* Added "commands_pending_response_mutex" protection in few other
places where "commands_pending_response" itself is used.
Bug:
36205494
Test: Running ASAN build
Change-Id: I63677ad1f2b28683c321631e9e29e4f01628d269
Myles Watson [Wed, 15 Mar 2017 19:14:36 +0000 (12:14 -0700)]
test_vendor: Stop watching before closing the FD
Test: net_test_bluetooth BluetoothTest.AdapterRepeatedEnableDisable
Change-Id: I72f5c9105b535ad5a5c41bc15dc9a3ad5f4e023f
Alex Deymo [Wed, 15 Mar 2017 07:16:58 +0000 (00:16 -0700)]
Fix bta_dm_act.cc compile error.
When BTM_LOCAL_IO_CAPS == BTM_IO_CAP_NONE the code fails to compile due
to a missing comma. This was introducted a couple of months ago by
2e8e9f42132d0297a94c0852a1fbf45c9bc348e5 but it went undetected.
This patch simply adds back the missing comma.
Bug:
35804180
Test: `make` on a device with BTM_LOCAL_IO_CAPS set to BTM_IO_CAP_NONE.
Change-Id: I0a924abec4fe6612c5dbb72416123ca391551523
Treehugger Robot [Wed, 15 Mar 2017 01:08:24 +0000 (01:08 +0000)]
Merge "Add a log message in the beginning of function hci_initialize()"
Jakub Pawlowski [Mon, 13 Mar 2017 23:09:35 +0000 (16:09 -0700)]
Parse extended advertising packets
Test: manual
Bug:
30622771
Change-Id: I286b8d636115385ee5951284629a1894026d9b5b
Pavlin Radoslavov [Sat, 11 Mar 2017 04:51:45 +0000 (20:51 -0800)]
Add a log message in the beginning of function hci_initialize()
Bug:
36043456
Test: Code compilation
Change-Id: Ib588c95a64100f5b2b3567f1bac9fe5e9160e4c0
Jakub Pawlowski [Sun, 12 Mar 2017 00:40:52 +0000 (16:40 -0800)]
Add "LE Remove Advertising Set Command"
Bug:
30622771
Test: manual
Change-Id: Ie0df73475359c69af8df672454fe0c0374523c88
Myles Watson [Tue, 14 Mar 2017 18:58:10 +0000 (11:58 -0700)]
hci: Stop the thread before hci_close()
Bug:
36026072
Test: Switch users (toggle Bluetooth under load)
Change-Id: I3fb901b5c47021c708c1fb548858406225065d00
Lakshmipathi K [Mon, 13 Mar 2017 17:35:12 +0000 (10:35 -0700)]
LE Periodic Advertising - advertiser interface
Bug:
30622771
Test: manual
Change-Id: I358b872c9ffb52f007db4f111520c05b9521aa7f
Treehugger Robot [Sat, 11 Mar 2017 02:03:42 +0000 (02:03 +0000)]
Merge "Bluetooth 5 feature check implementation (1/3)"
Myles Watson [Fri, 10 Mar 2017 21:08:59 +0000 (13:08 -0800)]
hci: Close the HAL before cleaning up pending command queue and timers
This prevents errors in case of event callbacks being received or timers
being fired after the pending command queue has been deleted.
Bug:
36026072
Test: Turn Bluetooth off/on while scanning and file transfer
Change-Id: I7bb699e929a8b40e42a3543b5445885ae6b1b975
Jakub Pawlowski [Fri, 10 Mar 2017 02:11:43 +0000 (18:11 -0800)]
Bluetooth 5 feature check implementation (1/3)
Wire the new feature check API to actual values received from the
controller.
Test: manual
Bug:
30622771
Change-Id: I2eefb7d5bb00d89ac7ea803191ba05f830080ade
Jakub Pawlowski [Fri, 24 Feb 2017 18:57:57 +0000 (10:57 -0800)]
smp_keys simplification
Test: manual
Change-Id: Ia38604d496b8ae50934c42b68f2424afd1c6320c
Myles Watson [Mon, 6 Mar 2017 17:07:37 +0000 (09:07 -0800)]
hci: Reduce HCI timeout to 2 seconds
Test: Bluetooth starts/stops, Bluetooth scan works
Change-Id: I4b04d71d57f45956898ff1a99e495195b54f4e8e
Jack He [Thu, 16 Feb 2017 08:06:15 +0000 (03:06 -0500)]
Fix for dual-mode devices advertising with a single address
* BTM_ReadRemoteDeviceName checks if a device is connectable over LE before
making a connection. However, when it is not connectable over LE, it could
be connectable over BR/EDR.
* For Dual Mode device, the device type should be 0x3 and is not equal to
BT_DEVICE_TYPE_BREDR, hence we cannot check equality to determine whether
a device is BR/EDR, but need to AND them and check the result.
* btm_ble_read_remote_name() already checks if device is connectable in LE,
and we do not need to do it in BTM_ReadRemoteDeviceName().
* This fix removes the check from BTM_ReadRemoteDeviceName
* This fix also adds error checking to return values of BTM_ReadRemoteDeviceName
* This fix moves inquiry database query to respective remote name
request procedures, as the result of the query is used in those
procedures instead of in BTM_ReadRemoteDeviceName()
Bug:
35348392
Test: make, pair with device that advertise on both LE and BR/EDR
Change-Id: I10d1aa9dd6e2447f9b9d40b1fea9370b5088a57d
Treehugger Robot [Thu, 2 Mar 2017 17:05:10 +0000 (17:05 +0000)]
Merge "cleanup: no assigns in conditionals"
Bailey Forrest [Wed, 1 Mar 2017 19:49:14 +0000 (11:49 -0800)]
Disable broken unittest
Change-Id: I9c7dbd8dfdb440a31e4c98e93ee533fe96ee7b0e
Pulkit Bhuwalka [Wed, 1 Mar 2017 00:11:34 +0000 (16:11 -0800)]
Allow framework to compile with BTM_IO_CAP_NONE
Using BTM_IO_CAP_NONE currently causes compilation to fail since
bta_dm_sp_cback ends up unused out a previous #ifdef that only kicks
in if BTM_IO_CAP_NONE is not set. Plugging the entire function into
a #ifdef so consistency is maintained and the framework can compile.
Bug:
35257446
Test: Built locally and run on device. Pairing without display using
JustWorks works.
Change-Id: Ibd7af6454253ccd731ff79602f327a52b8fe585b
Treehugger Robot [Wed, 1 Mar 2017 03:25:04 +0000 (03:25 +0000)]
Merge "Always restrict the AVDTP MTU for SBC codec to MAX_2MBPS_AVDTP_MTU(663)"
Treehugger Robot [Wed, 1 Mar 2017 01:46:28 +0000 (01:46 +0000)]
Merge "Ignore AAC bitrate from the A2DP Sink device if below a threshold"
Treehugger Robot [Wed, 1 Mar 2017 00:28:52 +0000 (00:28 +0000)]
Merge "btif_sock_thread: Set thread_id = -1 after join"
Pavlin Radoslavov [Tue, 28 Feb 2017 23:30:21 +0000 (15:30 -0800)]
Always restrict the AVDTP MTU for SBC codec to MAX_2MBPS_AVDTP_MTU(663)
Some devices claim they can handle large MTU and large SBC bitpool.
However, they are struggling and eventually over time they
start delaying the "Rcvd Number of Completed Packets" reports.
Now we always limit the payload MTU to MAX_2MBPS_AVDTP_MTU(663) -
with the overhead of (4 bytes L2CAP Header + 12 bytes AVDTP Header)
such packet can fit within 2-DH5 payload size of 679 bytes.
Bug:
34127145
Test: A2DP SBC streaming to headsets and carkit
Change-Id: I2f32becba703d77d36be46158f68b8a9ef3f299a
Pavlin Radoslavov [Fri, 17 Feb 2017 17:53:52 +0000 (09:53 -0800)]
Ignore AAC bitrate from the A2DP Sink device if below a threshold
Some Sink devices might advertise AAC zero bitrate or a very small
value (e.g., 24576). Ignore values that are below a threshold
(currently set to 64000), because those seem invalid.
For such devices, the actual streaming bitrate will be computed
based on the MTU.
Test: Code compilation
Change-Id: Ibe3de6e53681a618f388b41a01f366ad462b7a1d
Treehugger Robot [Tue, 28 Feb 2017 23:07:36 +0000 (23:07 +0000)]
Merge "osi: Use atomic_exchange to protect is_joined"
Myles Watson [Tue, 28 Feb 2017 19:14:26 +0000 (11:14 -0800)]
btif_sock_thread: Set thread_id = -1 after join
Bug:
35690239
Test: Switch users with Bluetooth enabled
(Disables/Enables Bluetooth under high load)
Change-Id: I6e09547cc8ffa3f01bc523ce4c18fdabfe08df99
Marie Janssen [Wed, 22 Feb 2017 16:35:29 +0000 (08:35 -0800)]
cleanup: no assigns in conditionals
Some assigns snuck into our conditionals, making the code harder to
read / follow.
Also remove some unnecessary null checks after osi_malloc that are
nearby.
Test: compiles, sanity check with device
Change-Id: Ia544da44060d9fc4363af9fbcb4112f3190f75ab
Myles Watson [Tue, 28 Feb 2017 19:16:03 +0000 (11:16 -0800)]
btif: Remove redundant thread_{stop|join}
Test: Switch users with Bluetooth enabled
(Disables/Enables Bluetooth under high load)
Change-Id: I2414fd26a0380644700d66a8fdec1fc54a1cd2f6
Myles Watson [Tue, 28 Feb 2017 19:05:52 +0000 (11:05 -0800)]
btif_sock: Use atomic operations for thread_handle
Test: Switch users with Bluetooth enabled
(Disables/Enables Bluetooth under high load)
Change-Id: I9039f97c090f693e798b8082fbb027e2028c8b40
Myles Watson [Tue, 28 Feb 2017 19:01:03 +0000 (11:01 -0800)]
osi: Use atomic_exchange to protect is_joined
Test: Switch users with Bluetooth enabled
(Disables/Enables Bluetooth under high load)
Change-Id: I34c5579b75620970f756fff28ccc07cf76599a94
Venkata Jagadeesh Garaga [Wed, 9 Nov 2016 05:10:20 +0000 (10:40 +0530)]
Increase max remote ext feature pages to 3
Use Case: DUT unable to pair with Xbox HID device
Steps:
1. Turn on BT
2. Start Inquiry
3. Pair with device with three extended feature pages
Failure: Unable to pair with HID device
Root Cause: DUT not responding for btm_read_remote_ext_features_complete
as we are not supporting three extended pages. So Security procedure also
not getting started.
Fix: Increase max remote ext feature pages to three from
2 as some latest remotes supporting three extended pages.
As per spec we can support 255 extended pages.
Test: Pair with device with three extended feature pages
Bug:
32999575
Change-Id: I061c78a7aaa1ab58a2fc554d026305a0124eee77
Jakub Pawlowski [Tue, 28 Feb 2017 01:51:44 +0000 (17:51 -0800)]
Fix libldac build on Linux
In build/BUILD.gn we set EXPORT_SYMBOL value, and it's used across the
whole stack. However, third party libraries require this value to be
cleared - otherwise the symbols are not exported properly.
Test: manual
Jakub Pawlowski [Fri, 24 Feb 2017 19:35:07 +0000 (11:35 -0800)]
Fix initial advertising command order
Set the address during SetParameters, for VSC implementation, and right
after setting parameters for BT5 implementation.
Test: sl4a ConcurrentBleAdvertisingTest
Bug:
33922058
Bug:
34962013
Change-Id: Idcc60a36884607de191066d8be1ee3bc459e86fc
Jakub Pawlowski [Fri, 24 Feb 2017 17:49:59 +0000 (09:49 -0800)]
btsnd_hcic_ble_rand refactor
Make btsnd_hcic_ble_rand accept base::Callback instead of function
pointer. This will result in great code simplifications in further
patches.
Test: sl4a ConcurrentBleAdvertisingTest
Change-Id: I9933caa78b20d0011ce3e17fd72d5740bcc4ae6d
Myles Watson [Tue, 13 Dec 2016 17:47:55 +0000 (09:47 -0800)]
test_vendor: Replace __FUNCTION__ with __func__
Test: Bluetooth settings still works
Change-Id: I4de24cceb9beb262ce7f96e7291288b70618f694
Ajay Panicker [Fri, 24 Feb 2017 17:37:30 +0000 (17:37 +0000)]
Revert "HID: Fix scroll issue with Apple Magic Mouse"
Reverting due to the fact that this causes many HID issues with fugu.
The general problem seems to be that this patch requires kernel 3.18
while fugu is currently on 3.10. Will investigate further later but
reverting for now to fix fugu.
This reverts commit
3e2201163b609aab6dcc0778158e790c3201353b.
Fixes:
35667962
Fixes:
35712367
Change-Id: I536da368fc9796b26dc52892eda6501772683330
Treehugger Robot [Fri, 24 Feb 2017 02:48:23 +0000 (02:48 +0000)]
Merge "Set the AAC audioMuxVersion to "2""
Treehugger Robot [Fri, 24 Feb 2017 01:01:15 +0000 (01:01 +0000)]
Merge "Update the AAC bitrate settings"
Jakub Pawlowski [Thu, 23 Feb 2017 22:43:08 +0000 (14:43 -0800)]
Display passkey when bonding
Test: manual
Change-Id: I238dfadf401b90d52caa4c381ea068b48091c092
Treehugger Robot [Fri, 24 Feb 2017 00:14:26 +0000 (00:14 +0000)]
Merge "Clear state mask when scan stopped"
Pavlin Radoslavov [Thu, 23 Feb 2017 21:57:15 +0000 (13:57 -0800)]
Set the AAC audioMuxVersion to "2"
This change is needed, because there are Sink devices that
expect a fixed latmBufferFullness value.
Bug:
35715579
Test: A2DP streaming to various devices
Change-Id: Ia27490920cda273cee15bfd7e643b85a5c5e428d
Pavlin Radoslavov [Thu, 23 Feb 2017 21:49:54 +0000 (13:49 -0800)]
Update the AAC bitrate settings
Use AACENC_PEAK_BITRATE to limit the maximum bitrate as limited by
the MTU, and use AACENC_BITRATE to set the encoder bitrate.
Previously, both were set to the same value. That was disabling
the AAC bitreservoir, and eventually affecting the audio quality.
Bug:
35715570
Test: A2DP streaming to various devices
Change-Id: I6adac4889f9b2d7509182df8961ddfada02ee8ac
Bluetooth Build Test [Wed, 22 Feb 2017 19:52:30 +0000 (11:52 -0800)]
Don't build vendor lib on Linux
The stack does no longer use vendor libs. We use hci_layer_linux.cc now.
Test: manual
Change-Id: I6c64337280c073647faf0bd775d75c5d700e7911
Jakub Pawlowski [Thu, 23 Feb 2017 21:55:02 +0000 (13:55 -0800)]
Clear state mask when scan stopped
Test: manual test
Change-Id: Icc47679aaba92afd7f3eab48416065d3a741a745
Jakub Pawlowski [Thu, 23 Feb 2017 17:50:31 +0000 (09:50 -0800)]
Log which advertising HCI interface is used
This is useful for debugging advertising issues.
Test: manual
Change-Id: Ia51eccb1ff7922a5864572a89e77404299965862
Treehugger Robot [Thu, 23 Feb 2017 18:26:03 +0000 (18:26 +0000)]
Merge "Close leftover Audio-to-Bluetooth HAL connections before reopening"
Jakub Pawlowski [Thu, 23 Feb 2017 01:14:29 +0000 (17:14 -0800)]
Fix stack shutdown on Linux
Right now, hci_close() is getting stuck on stopping the reader thread.
In order to fix that, we must have a way to exit the blocking read when
shutting down the stack.
Test: manual
Change-Id: I3a7eeef6d8ed223fc96ba9eeacca37006a5c9739
Pavlin Radoslavov [Thu, 23 Feb 2017 06:07:17 +0000 (22:07 -0800)]
Close leftover Audio-to-Bluetooth HAL connections before reopening
If the Audio-to-Bluetooth HAL reopens a connection on the Data or
Control channel without closing first the old one, the UIPC select(2)
loop gets confused and could spin with 100% CPU usage.
Now we check for channels that are reopened, and explicitly close
them before reopening.
Also, fix a check whether a file descriptor is valid: 0 is a valid
file descriptor.
Test: A2DP testing with a headset: connect/play/stop
Bug:
35394629
Change-Id: I7ae988ac77f25da56e59e347363e7c473e7f69a9
Treehugger Robot [Thu, 23 Feb 2017 12:01:32 +0000 (12:01 +0000)]
Merge "test_vendor: Return success for no-ops"
Jakub Pawlowski [Tue, 21 Feb 2017 22:55:21 +0000 (14:55 -0800)]
HCI for Linux
Test: manual
Change-Id: I7183c4773ae409f63296bd3c53a02ec2a460f021
Jakub Pawlowski [Tue, 21 Feb 2017 21:28:10 +0000 (13:28 -0800)]
Move Android specific HCI code into separate file
Test: manual
Change-Id: I0a99e528acaa1adec39425b7bf6f8d8b5c024632
Jakub Pawlowski [Wed, 22 Feb 2017 18:34:45 +0000 (10:34 -0800)]
Fix stack crash after bonding
delayed_auth_timer_ent was freed and re-created during it's execution.
Instead of re-creating, just cancel the timers in smp_cb_cleanup.
Test: manual, bond with HID device on linux
Bug:
34083285
Change-Id: Ie569666846db5dcb2466cff00665b2c1490d7d10
Chih-Hung Hsieh [Tue, 21 Feb 2017 21:48:52 +0000 (13:48 -0800)]
Use email address in OWNERS files.
Bug:
33166666
Test: default build targets
Change-Id: Id2b579215291cb1f6ae03ebc167f07bd59713dc4
Jakub Pawlowski [Mon, 20 Feb 2017 19:15:32 +0000 (20:15 +0100)]
Linux build fix
Test: build on linux
Change-Id: I21d613fb3e914949d3e8e8fcdae60e620e685394
Jakub Pawlowski [Mon, 20 Feb 2017 19:18:51 +0000 (20:18 +0100)]
Compile audio codec libraries on linux
Test: build on linux
Change-Id: I72c7621fde1f229e3dd2a8cfa0cf0339e601914c
Jakub Pawlowski [Tue, 21 Feb 2017 18:03:40 +0000 (18:03 +0000)]
Merge changes from topic 'ble_scanner_callbacks'
* changes:
Use base::Callbacks in BleScannerInterface (2/3)
Remove unnecessary extern declarations
Treehugger Robot [Tue, 21 Feb 2017 16:09:14 +0000 (16:09 +0000)]
Merge "Clean up some more #defines"
Jakub Pawlowski [Thu, 16 Feb 2017 19:56:56 +0000 (11:56 -0800)]
Use base::Callbacks in BleScannerInterface (2/3)
The remaining four native callbacks need more internal refactoring
before they can be turned into a callbacks.
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I8e1532bdfa2b0f22545f095eb427fd5ac1a75b56
Jakub Pawlowski [Fri, 17 Feb 2017 22:20:40 +0000 (14:20 -0800)]
Remove unnecessary extern declarations
Test: manual
Change-Id: I21bdb5952fff359a9ee7091d740ecac13aad640a
Pulkit Bhuwalka [Sat, 18 Feb 2017 00:25:22 +0000 (16:25 -0800)]
Fix SIGBUS error in BT stack when pairing with ARM boards
This CL fixes the actual crash location on pairing within the code.
https://android-review.googlesource.com/#/c/338167/ fixed the macro.
Bug:
35154933
Test: Verified by building and pairing with RPI3/NXP Arm boards.
Change-Id: Ic35f446e53aa724ecab72801b7f89c70fd11ba62
Myles Watson [Fri, 17 Feb 2017 18:49:59 +0000 (10:49 -0800)]
test_vendor: Return success for no-ops
Bug:
35408667
Test: Marlin with debug library BT starts and stops
Change-Id: Idd95115c17ca2fed983526ea47a44799e7de6e0c
Jakub Pawlowski [Fri, 17 Feb 2017 20:18:59 +0000 (12:18 -0800)]
Thread switching simplification
* add jni_thread_wrapper
* add FROM_HERE parameter to do_in_jni_thread, this will be used in
later patches to make thread switching logs nice.
Bug:
30622771
Test: manual
Change-Id: I4c8f9e0f32c501a6126fe04f2476ab6453fe637e
Myles Watson [Fri, 17 Feb 2017 16:30:18 +0000 (08:30 -0800)]
Check the return value of the HAL init function
If the HAL can be opened, but initialization fails, Bluetooth
can not start.
Test: Force an initialization failure, BT dies
Change-Id: I7dd5ed49c9e7873a666dc001e68bdc13660648ba
Myles Watson [Thu, 9 Feb 2017 17:38:07 +0000 (09:38 -0800)]
Clean up some more #defines
true -> TRUE
false -> FALSE
Test: builds
Change-Id: I2573b6ab81aa384cc6d20bb8beb84303aba06a66
Andre Eisenbach [Fri, 17 Feb 2017 02:38:25 +0000 (18:38 -0800)]
Fix HDP select thread id type
Recent changes in libbionic cause pthread_join to SIGABRT if called with
an invalid thread id. The select_thread_id variable in the HDP
sub-system was truncated from long->int causing pthread_join to not find
the correct thread and triggering the error.
Using the correct type for select_thread_id fixes this problem.
Change-Id: Id332fa86cf7f30abd211588d32899d41e157b462
Fixes:
35432169
Test: manual; boot device, turn BT off; ensure it stays off
Treehugger Robot [Thu, 16 Feb 2017 22:14:23 +0000 (22:14 +0000)]
Merge "Add a mutex to guard all btsnoop operations"
Jakub Pawlowski [Thu, 16 Feb 2017 20:09:52 +0000 (20:09 +0000)]
Merge changes Idcbbc7eb,I3dc48800
* changes:
Use LE Extended Create Connection when possible
Add LE Extended Create Connection HCI command
Pavlin Radoslavov [Thu, 16 Feb 2017 19:51:48 +0000 (11:51 -0800)]
Add a mutex to guard all btsnoop operations
After switching to HIDL, capture() can be called by multiple threads.
Capturing a packet and writing to the btsnoop/btsnooz logs
require multiple operations, hence we need a mutex to make those
operations atomic.
Previously, there were occasional btsnoop_hci.log files
with corrupted data as reported by Wireshark.
Test: Manual - captured multiple btsnoops_hci.log files.
Change-Id: Ib89d9156ad7e27a7dee652f71a0cf38c85d4447c
Jakub Pawlowski [Thu, 16 Feb 2017 15:12:22 +0000 (07:12 -0800)]
Use LE Extended Create Connection when possible
Bug:
30622771
Test: manual
Change-Id: Idcbbc7eb6f9b32b2f258d6f8913ead6986510da8
Jakub Pawlowski [Wed, 15 Feb 2017 16:35:30 +0000 (08:35 -0800)]
Add LE Extended Create Connection HCI command
Bug:
30622771
Test: manual
Change-Id: I3dc48800bd2dfb2f00c824c89888c9f4e8271497
Jakub Pawlowski [Thu, 16 Feb 2017 17:23:48 +0000 (09:23 -0800)]
Fix advertise data parsing
This patch fixes overflow of position variable, and possible read
outside of vector boundaries when parsing advertise data.
Parsing 1004 bytes of hex "
112233112233.." was causing infinite loop.
Bug:
30622771
Test: manual
Change-Id: I0d669f7958de73f5d53350fb293ff27fea172f44
Hemant Gupta [Tue, 25 Oct 2016 19:17:57 +0000 (12:17 -0700)]
HID: Fix scroll issue with Apple Magic Mouse
Usecase
1) Pair and connect with Apple Magic Mouse
2) Scroll over HID mouse and see if pointer moves up or down
on DUT.
Observation:
Scroll functionality does not work on DUT and mouse pointer
stays still.
Root Cause:
From kernel 3.18 onwards, UHID flags are updated and following new
flags are added. Support for handling same is missing in user
space hid driver (bta_hh_co.cc)
UHID_GET_REPORT
UHID_GET_REPORT_REPLY
UHID_SET_REPORT
UHID_SET_REPORT_REPLY
Fix:
Add support for set report and get report in HID user
space because of changes in uhid kernel driver with kernel changes
for kernel 3.18. Apple Magic Mouse scroll functionality does not
work without this fix, as Apple Mouse requires set report from
HID host for it to start working properly wrt Scroll functionality.
Bug:
35306202
Change-Id: I90230b76d68e9275dcacd9f46f03e312ddf2fa30
Pavlin Radoslavov [Wed, 15 Feb 2017 01:38:19 +0000 (17:38 -0800)]
Add a missing NULL pointer check inside bta_av_rcfg_str_ok()
Apparently, the p_data argument could be NULL if the reconfig
was triggered by the local device.
Test: Tested with Bluetooth headsets
Bug:
35351216
Change-Id: Ic51d849232944b5978772d222c41f66824e14dd4
Treehugger Robot [Wed, 15 Feb 2017 01:39:00 +0000 (01:39 +0000)]
Merge "Fix SIGBUS error in BT stack when pairing with ARM boards"
Pulkit Bhuwalka [Tue, 14 Feb 2017 01:44:47 +0000 (17:44 -0800)]
Fix SIGBUS error in BT stack when pairing with ARM boards
Bluetooth stack crashes with a SIGBUS memory unaligned error since the
toolchain optimizes memcpy to generate register instructions which are
unaligned in memory. Similar issue was seen earlier in
https://android-review.googlesource.com/#/c/181713/
which was solved by casting pointers to (void *). That fix misses edge
cases where the destination pointer needs to be casted as well.
Change-Id: I23cc16142deaf3dc1fff91588d736abdfcb3bfde
Fixes:
35154933
Test: Verified by building and pairing with RPI3/NXP Arm boards.
Pavlin Radoslavov [Tue, 14 Feb 2017 20:18:44 +0000 (12:18 -0800)]
Update the A2DP MTU if the L2CAP MTU changes during codec reconfiguration
Previously, the MTU was saved inside the AVDTP module after the first
codec setup. However, the MTU wasn't updated after codec reconfiguration.
As a result, if a Sink device uses different (smaller) MTU for
a codec like SBC, then switching fron another codec to SBC will
result in generating SBC frames that are too large to transmit,
and there will be no audio.
Bug: b/
35351216
Test: A2DP streaming and codec switch to various Sink devices.
Change-Id: Ieb3caf4ef7a30a7af31ceb2f6132807739829441
Treehugger Robot [Tue, 14 Feb 2017 02:26:15 +0000 (02:26 +0000)]
Merge "Lower the BLE connection supervision timeout to 5s."
Jakub Pawlowski [Tue, 14 Feb 2017 01:34:29 +0000 (01:34 +0000)]
Merge "Change LE advertisement data length type (uint8_t -> uint16_t)"
Myles Watson [Thu, 9 Feb 2017 22:16:52 +0000 (14:16 -0800)]
Fix comment formatting at the beginning of lines
Test: builds
Change-Id: I691a40ad37b0cbe3ce56a09dc986df8857883b23
Qasim Javed [Mon, 6 Feb 2017 20:16:09 +0000 (12:16 -0800)]
Lower the BLE connection supervision timeout to 5s.
The current default of 20 seconds is too high especially considering
that BLE tries to optimize (re)connection times. A connection
supervision timeout of 20 seconds essentially means that an initiator
of the connection could be in the connecting state for 20 seconds
before giving up on that connection attempt.
Checking other platforms such as iOS for default connection supervision
timeout reveals that they use sub-second (750ms) values.
Change-Id: I6ff7a20ceab0df8986191dd73676cadbe23a175e
Jakub Pawlowski [Mon, 13 Feb 2017 22:31:52 +0000 (14:31 -0800)]
Change LE advertisement data length type (uint8_t -> uint16_t)
Chained advertisement data can be up to 1650 bytes.
Test: manual
Bug:
30622771
Change-Id: I67af5a8130ac2d3f0dbd8f5e3f28b72b152256c2
Marie Janssen [Wed, 1 Feb 2017 20:50:00 +0000 (12:50 -0800)]
btif: remove logspam at higher debug levels
Some CHECK macros had logs that printed the function name, which
duplicated the logs in the functions outside the checks, producing too
many logs.
Remove some unused macros.
Changes:
02-01 09:34:11.757 1259 1755 D bt_btif : get_folder_items_list_rsp
02-01 09:34:11.757 1259 1755 D bt_btif : get_folder_items_list_rsp: item_cnt: 0 len: 0
to
02-01 09:34:11.757 1259 1755 D bt_btif : get_folder_items_list_rsp: item_cnt: 0 len: 0
and similar.
Test: run logcat, check that we have less duplicated logs
Change-Id: Id6e57f38b34d176ed8be0c3baedfbcf55e61a9a4
Pavlin Radoslavov [Sat, 11 Feb 2017 09:20:49 +0000 (01:20 -0800)]
Allow back-to-back AVDTP API_RECONFIG_EVT events
Based on AVDTP Spec 1.3, Section 9.8 StreamChangeParameters, the RECONFIG
procedure (AVDTP_RECONFIGURE_CMD) happens in OPEN state, and there is no
state transition that would prohibit calling the RECONFIG procedure
back-to-back.
Test: A2DP codec reconfiguration and audio play with several Sink devices
Bug:
35284763
Change-Id: Ie4ddca8545e2146fbd863e55713fd2d49994b4b0
Treehugger Robot [Sat, 11 Feb 2017 04:09:44 +0000 (04:09 +0000)]
Merge "osi: Remove unused eager_reader code"
Jakub Pawlowski [Fri, 10 Feb 2017 23:24:00 +0000 (15:24 -0800)]
Get rid of btm_ble_send_extended_scan_params
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I94e62ca0d785b20f97e3397131b70eac06e15003
Jakub Pawlowski [Fri, 10 Feb 2017 23:17:52 +0000 (15:17 -0800)]
Fix set extended scan params command
scanning_phys is a bitmap, not a count of PHYs. This error was resulting
in invalid HCI command being sent. This had no impact so far, because
only 1M PHY was used.
Bug:
30622771
Test: manual
Change-Id: I2be4f5ddbe0d453dc49cdee4605821b10853d7d8
Bailey Forrest [Fri, 10 Feb 2017 00:49:15 +0000 (16:49 -0800)]
Add Service Data GAP EIR data type
Test: Build
Change-Id: I378883fdeb09fadaac04ace2dc499abd27b7d3ab
Treehugger Robot [Fri, 10 Feb 2017 13:48:38 +0000 (13:48 +0000)]
Merge "Minor fixes"
Jakub Pawlowski [Fri, 10 Feb 2017 05:41:05 +0000 (05:41 +0000)]
Merge "Advertising data handling improvements"
Treehugger Robot [Fri, 10 Feb 2017 03:15:25 +0000 (03:15 +0000)]
Merge "Enable DLOG on eng and userdebug builds"
Bailey Forrest [Fri, 10 Feb 2017 01:26:28 +0000 (17:26 -0800)]
Minor fixes
- Include <mutex> for heart_rate_server
- Remove unnecessary assignment
Test: Build
Change-Id: Ic2368d08789b95e71c083460148c70b9d0ef0b20
Jakub Pawlowski [Tue, 7 Feb 2017 20:15:06 +0000 (12:15 -0800)]
Advertising data handling improvements
* use non-hardcoded advertise data size
* use cache for keeping non-complete advertising data, waiting either
for scan scan response, or secondary channel data.
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I689edcb4aee30361df15340029559cd19dac552b
Treehugger Robot [Fri, 10 Feb 2017 00:53:23 +0000 (00:53 +0000)]
Merge "Remove build variables that are no longer used"