OSDN Git Service
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"
Jakub Pawlowski [Fri, 10 Feb 2017 00:46:45 +0000 (16:46 -0800)]
Enable DLOG on eng and userdebug builds
Test: manual
Change-Id: I1ff4ad6b2543246351d4d34919ba443e5617a9c0
Jack He [Wed, 8 Feb 2017 01:25:15 +0000 (17:25 -0800)]
Use same timestamp for on-disk BT Snoop Log and in-memory BT Snooz Log
* Logcat uses gettimeofday for its timestamp, the same as on-disk BT
Snoop log
* Although in-memory BT Snooz Log uses the same method to get time, it
is calling it separately, resulting in mismatch between timestamps of
two snoop logs
* This CL let them uses the same timestamp_us value and put the function
definition to libosi
* Note that preserved on-disk BT Snoop logs timestamp postfix at
btsnoop_hci_<timestamp>.log
will be changed to microsecond since epoch at current device timezone
instead of the shifted BT Snoop timestamp value
* New unit tests for gettimeofday
Bug:
35113514
Test: Make, unit tests, run BT activities and check both snoop logs
Change-Id: I5b3f87bc523b272ced2c69a4595d0e0cbe29bcb3
Pavlin Radoslavov [Thu, 9 Feb 2017 22:35:05 +0000 (22:35 +0000)]
Merge "Guard btsnooz ringbuffer access from multiple threads"
Jack He [Thu, 9 Feb 2017 22:29:59 +0000 (14:29 -0800)]
Remove build variables that are no longer used
* Removed BtHcilpIncluded from BOARD_BLUETOOTH_BDROID_HCILP_INCLUDE
* Removed BtHciUseMct from BLUETOOTH_HCI_USE_MCT
Bug:
35203653,
34951912
Test: Code compilation, no user visible effects
Change-Id: Ifbb0c2165a2b7cb6ec1d5c87a610219dd010206b
Kenmochi, Chisato [Thu, 9 Feb 2017 20:23:47 +0000 (12:23 -0800)]
Fix AAC bitrate computation and add missing parameters
* Compute the AAC codec bitrate based on the MTU and the AAC
object type such that the AAC frames are not fragmented.
The spec recommendation is to avoid fragmentation, and
some sink devices cannot process fragmented frames.
* Setup/assign AACENC_PEAK_BITRATE as the peak bitrate to
make sure we never go over the MTU frame size.
* Add missing AAC parameter setup for AACENC_AUDIOMUXVER
and AACENC_SIGNALING_MODE
* Add a fix for selecting the bitrate if the sink device reports
capability with zero bitrate - for such devices we negotiate
our bitrate. For the actual AAC codec bitrate we still compute
it based on the MTU and the AAC object type.
Test: Tested with numerous AAC sink devices
Bug:
34953385
Change-Id: I9ca6353b0e1ee107f1242803de4e82d568a3394b
Andre Eisenbach [Thu, 9 Feb 2017 19:44:04 +0000 (11:44 -0800)]
Guard btsnooz ringbuffer access from multiple threads
Since moving to HIDL, the btsnooz packet ringbuffer can be accessed from
two separate threads. Thus it should be guarded from concurrent access
to avoid pointer corruption.
Bug:
35182804
Test: manual
Change-Id: I3e6e1a869887a7ad5d87d8bb09ed78a22b3383ae
Myles Watson [Wed, 8 Feb 2017 23:50:16 +0000 (15:50 -0800)]
osi: Remove unused eager_reader code
Test: Builds
Change-Id: Id5c7a8b9ca59ec90c3d2d0d4935f3f5ff287c433
Treehugger Robot [Wed, 8 Feb 2017 14:00:07 +0000 (14:00 +0000)]
Merge "Use CHECK() to verify that HIDL is installed"
Treehugger Robot [Wed, 8 Feb 2017 10:50:04 +0000 (10:50 +0000)]
Merge "Fix the implementation of htonll()"
Pavlin Radoslavov [Tue, 7 Feb 2017 02:48:18 +0000 (18:48 -0800)]
Fix the implementation of htonll()
Prior the fix, all btsnoop entries had same timestamp.
Bug:
35111777
Test: Examine the btsnoop log file with Wireshark
Change-Id: I9e664475ff5b4ffc543d95b90a47c7f80fdc0370
Sanket Agarwal [Tue, 7 Feb 2017 21:49:00 +0000 (21:49 +0000)]
Merge "AVRCT CT: uint8_t is used for 2byte field"
Myles Watson [Tue, 7 Feb 2017 13:14:06 +0000 (05:14 -0800)]
Use CHECK() to verify that HIDL is installed
Test: build, boot test on angler
Change-Id: Ia64dcceedc233ef494ab0fdce7ee649e74fa45a0
Sanket Agarwal [Tue, 31 Jan 2017 21:43:58 +0000 (13:43 -0800)]
HF Client: SCO routing with multiple devices
For SCO it makes sense only to have one active connection at a time for
any device since simultaneous SCO calls in a single device is
un-reasonable. This change changes the SCO state machine in following
ways:
a) SCO is not setup automatically whenever AG wants, the client for this
BTA layer will have to call connect_audio to start SCO
b) Also when we disconnect SCO for a device, it does not go into a
listen state. We are making sure that the upper layer caller always has
to call connect to accept a connection
Bug: b/
34518638
Test: Manual testing w/ multiple active calls and SCO switching
Change-Id: I6e6c4c6e6ee19e44e3ff14499fb99083102bde5a
Sanket Agarwal [Tue, 7 Feb 2017 01:56:29 +0000 (17:56 -0800)]
AVRCT CT: uint8_t is used for 2byte field
This causes the upper stack to report incorrect entries if the value is
large
Bug: b/
34682784
Test: Check with a list > 4 items large and packet size big enough to
exceed uint8_t size
Change-Id: I73233a74378d9c091e33f204780a9492505d99b4
Jakub Pawlowski [Tue, 7 Feb 2017 01:29:25 +0000 (01:29 +0000)]
Merge changes from topic 'bt5_scan_props'
* changes:
Propagate BT5 specific scan result properties up the stack (2/3)
Use new event type in BLE scan
Jakub Pawlowski [Fri, 27 Jan 2017 16:06:20 +0000 (08:06 -0800)]
Propagate BT5 specific scan result properties up the stack (2/3)
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: Ib9d18ea3a1fc7d95300415a04b551d66767b04d2
Jakub Pawlowski [Fri, 27 Jan 2017 13:53:07 +0000 (05:53 -0800)]
Use new event type in BLE scan
Right now new event_type in scan result is translated to legacy
one and used through whole stack. This patch make use of new event_type
through whole stack instead.
Bug:
30622771
Test: sl4a FilteringTest
Change-Id: I7420c040b8c54fae00262c939bcabc6c6fcb16e6
Pavlin Radoslavov [Wed, 1 Feb 2017 04:51:06 +0000 (20:51 -0800)]
Add a mechanism to configure the default A2DP codec priorities
Previously, the relative codec priorities were hard-codec internally.
The new mechanism uses the following configurable resources in
packages/apps/Bluetooth/res/values/config.xml to re-assign the
default codec priorities per device, or to explicitly disable a codec.
- a2dp_source_codec_priority_sbc
- a2dp_source_codec_priority_aac
- a2dp_source_codec_priority_aptx
- a2dp_source_codec_priority_aptx_hd
- a2dp_source_codec_priority_ldac
Those values are assigned on startup.
Also, they can be changed per device by using an overlay:
device/<VENDOR>/<DEVICE>/overlay/packages/apps/Bluetooth/res/values/config.xml
Test: Manually streaming to a headset
Change-Id: I5312299aea4a11c92fbe999d521adb39346b9866
Jakub Pawlowski [Wed, 25 Jan 2017 11:06:49 +0000 (03:06 -0800)]
BLE Advertising Manager test improvements
This patch moves mock verification before call to callback. If for any
reason the callback is not properly initialized, this is usually due to
fact that the call didn't reach the mock. Right now in such cases we get
a crash and stack trace. After this patch we will first get information
about the mock not being called properly, then the crash, which would
make debugging such issues much easier.
Bug:
30622771
Test: manual test
Change-Id: Ia182f2eed384924395e8d6b6a2d3d0abd393a4ee
Andre Eisenbach [Fri, 3 Feb 2017 22:37:44 +0000 (14:37 -0800)]
Temporarily disable WBS; to be replaced with eSCO
HIDL'ized vendor library does not support custom audio parameter
configuration currently. To be replaced with eSCO commands.
Test: manual
Change-Id: I64850a7cbc6a05376f60f669fe43c3955cfcc08c
Pavlin Radoslavov [Fri, 3 Feb 2017 03:47:16 +0000 (19:47 -0800)]
Fix a memory leak in the osi allocation tracker
Add a missing free(allocation) inside allocation_tracker_notify_free()
when freeing a memory buffer.
Prior to switching the allocation tracker to use C++ unordered_map,
the "allocation" bin was kept within (and reused) by the older hash_map
mechanism. However, after the switch to the C++ unordered_map this
is no longer the case, hence the memory leak.
Test: watch -n 1 "adb shell dumpsys meminfo -d BT-PID | grep Heap"
Bug:
34785845
Change-Id: I737c901a6452d29d18fd8b847e7d5ea10c5ff485
Treehugger Robot [Fri, 3 Feb 2017 02:12:31 +0000 (02:12 +0000)]
Merge "Use local CCB variable in loop to check GAP CCB pool"
Venkata Ramana Rao [Wed, 15 Jun 2016 09:57:12 +0000 (15:27 +0530)]
Use local CCB variable in loop to check GAP CCB pool
CCBs are not being properly cleared due to attempting to clear the wrong
CCB. This is fixed by using a local CCB variable in order to preserve the
CCB being freed.
Test: Send multiple files over OPP
Change-Id: I06a8f237047ffb212118b4239e9856fe5c89acb1
Manu Viswanadhan [Tue, 7 Jun 2016 10:51:18 +0000 (16:21 +0530)]
Initializing the SDP event message pointer before sending
Use case: Crash while copying SDP results in case of SDP
ServiceSearchAttributeRequest failure
Steps : Repeated connection-disconnection with multiple devices
Failure: Crash while copying SDP results
Root cause: In case of SDP_ServiceSearchAttributeRequest failure,
garbage value sent for discovery result structure due to improper
initialization
Fix: Initialize the discovery result structure to zero before
sending
Test: code compilation.
Change-Id: I46d92d6262bae3b5def5401270465a3a06468c1a
Myles Watson [Thu, 26 Jan 2017 23:09:38 +0000 (15:09 -0800)]
test_vendor: Test fixes for AsyncManager
Test: unit tests pass
Change-Id: I5c3f9f4a1fa86e97fa9e6cc26160fd1e3e854925
Andre Eisenbach [Thu, 2 Feb 2017 18:00:58 +0000 (18:00 +0000)]
Merge changes Ie172ca37,Idf714e51
* changes:
Remove LPM code from the stack
btif: Remove platform-specific address logic
Andre Eisenbach [Thu, 2 Feb 2017 18:00:29 +0000 (18:00 +0000)]
Merge "Initial HIDL conversion"
Myles Watson [Mon, 12 Sep 2016 21:39:58 +0000 (14:39 -0700)]
Remove LPM code from the stack
Power management is handled in hardware/interfaces/bluetooth/.
Test: mma -j32
Change-Id: Ie172ca37059768a2cfa0d4b84f34b54624b1fa49
Myles Watson [Wed, 21 Dec 2016 23:27:01 +0000 (15:27 -0800)]
btif: Remove platform-specific address logic
This functionality has moved to hardware/interfaces/bluetooth/
Test: Boot and check the address.
Change-Id: Idf714e514314c10dc1659f024ab4cc8570f292b7
Andre Eisenbach [Fri, 11 Nov 2016 00:11:00 +0000 (16:11 -0800)]
Initial HIDL conversion
Test: Unit tests, VTS test, device sanity
Change-Id: Ia5b2b5fa762d240c0490666d50ea5c878631fcd1
Ajay Kumar [Wed, 12 Mar 2014 13:59:27 +0000 (19:29 +0530)]
Handled invalid MTU Size in L2cap Process Commands
Use case: Execute the L2CAP test suite on Codenomicon tool
(1)From tool Codenomicon Defensics 11 menu Utilities > Bluetooth Scan,
paired Bluetooth between pc and phone.
(2)From Defensics 11 Settings ,choose paired phone Bluetooth to be
Target Bluetooth device address in Basic configuration.
(3)Run the test case " Security - l2cap ".
(4)When run to the number 28, 29 test case,check the phone. BT turn
off and turn on
Failure: BT crash observed due to invalid MTU packets from test tool
Root cause: L2CAP is not validating packets in L2CAP Process Commands
Fix: Fixed by sending reject CMD for invalid commands from tool
Test: code compilation.
Change-Id: I8c503ab77d8fca3728a84c3457d8115e31ee3a13
Pavlin Radoslavov [Wed, 1 Feb 2017 11:55:33 +0000 (03:55 -0800)]
Add memory allocation statistics to the Bluetooth dumpsys output
The following memory allocation statistics are added to
the "dumpsys bluetooth_manager" output.
Those are tracking the allocations that are using the OSI malloc mechanism:
osi_strdup() / osi_strndup() / osi_malloc() / osi_calloc() / osi_free()
Bluetooth Memory Allocation Statistics:
Total allocated/free/used counts : 4063 / 3323 / 740
Total allocated/free/used octets : 922460 / 607941 / 314519
Test: Running "adb shell dumpsys bluetooth_manager"
Change-Id: Ibe1d28ec3a2acfd87cfaa10e5902ef3b596e64a8
Pavlin Radoslavov [Thu, 26 Jan 2017 01:00:23 +0000 (17:00 -0800)]
Update the A2DP Codec Config API
Previously, the JNI upcall would contain only the current codec config.
In the new API, the upcall contains:
1. The current codec config
2. The list of codecs containing the local codecs capabilities
3. The list of codecs containing the selectable codecs capabilities.
This list is the intersection of the local codecs capabilities
and the capabilities of the paired device.
Also, updated the codec backend to accomodate the above changes:
* Update all selectable codecs inside bta_av_co_audio_set_codec()
* Changed getCodecConfigAndCapabilities() to return current codec
config, local codecs capabilities, and selectable codecs capabilities.
* Updated each codec to compute and store a copy of the selectable
capabilities, and the local capabilities.
* Updated tA2DP_SBC_CIE to include new field bits_per_sample
(for consistency with the rest of the codecs).
* Replaced usage of codec_priority of 0 with BTAV_A2DP_CODEC_PRIORITY_DEFAULT
* If there is user codec (re)config call, we always send an upcall
to inform the Java layer about the most recent codec info.
Thus, the caller would always know whether the request succeeded or failed.
Test: A2DP streaming with headsets and switching the codecs
Change-Id: Ie7a5cd5c2ab01bb8676032be05bc2ad03baa1e3f
Stephen Li [Thu, 26 Jan 2017 23:45:27 +0000 (15:45 -0800)]
Merge commit '
ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into
This is because patchset 1 of change 328081 got merged in to the branch
and not patchset 2, despite what gerrit UI says. This is a known error
and is being worked on.
Change-Id: If4f6f3d705e93f03d120c6441e16e9b0afc3d9ca
Treehugger Robot [Thu, 26 Jan 2017 23:22:12 +0000 (23:22 +0000)]
Merge "Remove HC_BUFFER_HDR_T"
Andre Eisenbach [Wed, 25 Jan 2017 17:26:41 +0000 (09:26 -0800)]
Remove HC_BUFFER_HDR_T
Test: compiles
Change-Id: Ia5bf3395bd5a18a27168f05a0a2239a37ddb2c2c
Pavlin Radoslavov [Wed, 4 Jan 2017 00:53:18 +0000 (16:53 -0800)]
Integration of the AAC codec for A2DP source
Also:
- Implemented data fragmentation inside bta_av_data_path()
that is RTP compatible.
- Do not use the codec_type when composing the RTP payload type
per RFC 3016, Section 4.2. That value doesn't have actual meaning
in the context of the Bluetooth supported codecs, and is ambiguous:
all vendor codecs map to the same value 0xFF.
- Updated support function A2DP_BitsSet() so it works for
up to 64-bit integers.
- Updated a log message inside l2c_data_write() to print
packet length and peer MTU on error.
Test: A2DP streaming to AAC headsets
Bug:
30958229
Change-Id: I1b530f1c5c495b8231fd68bed788d4567096683d
Treehugger Robot [Wed, 25 Jan 2017 19:55:59 +0000 (19:55 +0000)]
Merge "Update UUIDs immediately on NVRAM"
Treehugger Robot [Wed, 25 Jan 2017 19:28:02 +0000 (19:28 +0000)]
Merge "Corrected default value assignments in Bluetooth A2DP Metrics"
Srinu Jella [Mon, 21 Nov 2016 12:56:58 +0000 (18:26 +0530)]
Update UUIDs immediately on NVRAM
As the BTIF config updation have delay in writing items
to the NVRAM, some times there is a chance of not updating
incase of battery removal happens before the actual write onto
NVRAM.
As SDP UUIDs is important data to store, it will update
immediately onto NVRAM.
Test: manual
Change-Id: I6637dc326f3a53211a5bbf988a2dca1020203128
Andre Eisenbach [Wed, 25 Jan 2017 17:26:41 +0000 (09:26 -0800)]
Remove HC_BUFFER_HDR_T
Test: compiles
Change-Id: Ia5bf3395bd5a18a27168f05a0a2239a37ddb2c2c
Ivan Podogov [Thu, 19 Jan 2017 17:19:37 +0000 (17:19 +0000)]
HID: Fix forced disconnection flow.
In some cases, we end up in a state where we can neither
connect nor forcefully end connection, and will require disabling
the Bluetooth adapter to fix this state.
When a device is taking too long to connect (or out of range),
the user may want to cancel the connection by calling disconnect
method, which will be ignored in any state other than
BTA_HD_CONN_ST. It is a lot better to immediately cease the
connection process at this point, so:
- BTA_HD_API_DISCONNECT_EVT is now not ignored in BTA_HD_IDLE_ST;
- bta_hd_disconnect_act now reports a correct MAC address during
disconnection (it used to send 00:00:00:00:00:00 before);
- HidDevDisconnect now allows to forcefully end the connection,
and does it in exactly the same way we handle the errors.
When L2CAP connection fails, both hidd_l2cif_config_ind and
hidd_l2cif_config_cfm set conn_state to HID_CONN_STATE_UNUSED,
which is immediately overwritten by the hidd_conn_disconnect call
(it will set conn_state to HID_CONN_STATE_DISCONNECTING, because
ctrl_cid != 0 in both cases), thus making any subsequent calls to
connect failing with "already connecting" error. More than that,
all functions send the HID_DHOST_EVT_CLOSE event when failing,
which is, again, ignored in the BTA_HD_IDLE_ST state. So:
- BTA_HD_INT_CLOSE_EVT is now not ignored in BTA_HD_IDLE_ST;
- conn_state is set to HID_CONN_STATE_UNUSED after the call to
hidd_conn_disconnect, but before sending the close event.
Test: Build, run, connect/disconnect multiple times.
Change-Id: I85bb03f760bb9a6fd4c1b944d515232c1be12300