OSDN Git Service

android-x86/system-bt.git
7 years agoAdd Service Data GAP EIR data type
Bailey Forrest [Fri, 10 Feb 2017 18:13:17 +0000 (18:13 +0000)]
Add Service Data GAP EIR data type
am: 2a2583bdd3

Change-Id: Id9e77ecd8ae5c101379c16e201e9538ab89458c3

7 years agoAdd Service Data GAP EIR data type
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

7 years agoMerge "Minor fixes"
Bailey Forrest [Fri, 10 Feb 2017 13:51:39 +0000 (13:51 +0000)]
Merge "Minor fixes"
am: bb952824d1

Change-Id: I71a561da11481ceddcc53e7051ea568f821124d3

7 years agoMerge "Minor fixes"
Treehugger Robot [Fri, 10 Feb 2017 13:48:38 +0000 (13:48 +0000)]
Merge "Minor fixes"

7 years agoMerge "Advertising data handling improvements"
Jakub Pawlowski [Fri, 10 Feb 2017 05:49:13 +0000 (05:49 +0000)]
Merge "Advertising data handling improvements"
am: caac63a814

Change-Id: Ice53320def5bfd56de0329465c42e551828c0661

7 years agoMerge "Advertising data handling improvements"
Jakub Pawlowski [Fri, 10 Feb 2017 05:41:05 +0000 (05:41 +0000)]
Merge "Advertising data handling improvements"

7 years agoMerge "Enable DLOG on eng and userdebug builds"
Jakub Pawlowski [Fri, 10 Feb 2017 03:21:32 +0000 (03:21 +0000)]
Merge "Enable DLOG on eng and userdebug builds"
am: 0b8c812427

Change-Id: I67ecd676087b183f749d5ee7495ede92dd938423

7 years agoMerge "Enable DLOG on eng and userdebug builds"
Treehugger Robot [Fri, 10 Feb 2017 03:15:25 +0000 (03:15 +0000)]
Merge "Enable DLOG on eng and userdebug builds"

7 years agoMinor fixes
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

7 years agoAdvertising data handling improvements
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

7 years agoMerge "Remove build variables that are no longer used"
Jack He [Fri, 10 Feb 2017 00:58:24 +0000 (00:58 +0000)]
Merge "Remove build variables that are no longer used"
am: f9ea60e015

Change-Id: Ic47a45bc196acc715e2152ed95510b9e1afb01c8

7 years agoMerge "Remove build variables that are no longer used"
Treehugger Robot [Fri, 10 Feb 2017 00:53:23 +0000 (00:53 +0000)]
Merge "Remove build variables that are no longer used"

7 years agoEnable DLOG on eng and userdebug builds
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

7 years agoUse same timestamp for on-disk BT Snoop Log and in-memory BT Snooz Log
Jack He [Fri, 10 Feb 2017 00:19:42 +0000 (00:19 +0000)]
Use same timestamp for on-disk BT Snoop Log and in-memory BT Snooz Log
am: 071b507ad4

Change-Id: Ie19de8d98cdf01ac1b66d146742f19a769969f9f

7 years agoUse same timestamp for on-disk BT Snoop Log and in-memory BT Snooz Log
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

7 years agoMerge "Guard btsnooz ringbuffer access from multiple threads"
Pavlin Radoslavov [Thu, 9 Feb 2017 22:40:45 +0000 (22:40 +0000)]
Merge "Guard btsnooz ringbuffer access from multiple threads"
am: 82fc2a96ef

Change-Id: I75ad53c392554ea41694a9d314e1503009c076ce

7 years agoFix AAC bitrate computation and add missing parameters
Kenmochi, Chisato [Thu, 9 Feb 2017 22:40:28 +0000 (22:40 +0000)]
Fix AAC bitrate computation and add missing parameters
am: 3b8f12614f

Change-Id: I9ecff0dfe4d804678c6dc5c3bc2fc0f5d0a324ed

7 years agoMerge "Guard btsnooz ringbuffer access from multiple threads"
Pavlin Radoslavov [Thu, 9 Feb 2017 22:35:05 +0000 (22:35 +0000)]
Merge "Guard btsnooz ringbuffer access from multiple threads"

7 years agoRemove build variables that are no longer used
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: 3520365334951912
Test: Code compilation, no user visible effects
Change-Id: Ifbb0c2165a2b7cb6ec1d5c87a610219dd010206b

7 years agoFix AAC bitrate computation and add missing parameters
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

7 years agoGuard btsnooz ringbuffer access from multiple threads
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

7 years agoMerge "Use CHECK() to verify that HIDL is installed"
Myles Watson [Wed, 8 Feb 2017 14:03:16 +0000 (14:03 +0000)]
Merge "Use CHECK() to verify that HIDL is installed"
am: c9f353fa78

Change-Id: Ie4c283f10611062df08cfc7f6520b3a31e6363cc

7 years agoMerge "Use CHECK() to verify that HIDL is installed"
Treehugger Robot [Wed, 8 Feb 2017 14:00:07 +0000 (14:00 +0000)]
Merge "Use CHECK() to verify that HIDL is installed"

7 years agoMerge "Fix the implementation of htonll()"
Pavlin Radoslavov [Wed, 8 Feb 2017 10:53:34 +0000 (10:53 +0000)]
Merge "Fix the implementation of htonll()"
am: 9c0d0af2b0

Change-Id: I31333bc5c25744a5a438bfc36d6ba347cc761b5f

7 years agoMerge "Fix the implementation of htonll()"
Treehugger Robot [Wed, 8 Feb 2017 10:50:04 +0000 (10:50 +0000)]
Merge "Fix the implementation of htonll()"

7 years agoFix 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

7 years agoMerge "AVRCT CT: uint8_t is used for 2byte field"
Sanket Agarwal [Tue, 7 Feb 2017 21:54:18 +0000 (21:54 +0000)]
Merge "AVRCT CT: uint8_t is used for 2byte field"
am: a84ef64eb8

Change-Id: I0f7fee007ae4a5b3bd19fa2862e0c22aa7f46cae

7 years agoHF Client: SCO routing with multiple devices
Sanket Agarwal [Tue, 7 Feb 2017 21:54:07 +0000 (21:54 +0000)]
HF Client: SCO routing with multiple devices
am: ac109dc225

Change-Id: Id8893897e60105f11e7b7637a666aaa6cab957ad

7 years agoMerge "AVRCT CT: uint8_t is used for 2byte field"
Sanket Agarwal [Tue, 7 Feb 2017 21:49:00 +0000 (21:49 +0000)]
Merge "AVRCT CT: uint8_t is used for 2byte field"

7 years agoUse CHECK() to verify that HIDL is installed
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

7 years agoHF Client: SCO routing with multiple devices
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

7 years agoAVRCT CT: uint8_t is used for 2byte field
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

7 years agoMerge changes from topic 'bt5_scan_props'
Jakub Pawlowski [Tue, 7 Feb 2017 01:33:28 +0000 (01:33 +0000)]
Merge changes from topic 'bt5_scan_props'
am: 1e73f14e77

Change-Id: I4639f2dc8b6576cbc8c823810e26ce3846fdc010

7 years agoPropagate BT5 specific scan result properties up the stack (2/3)
Jakub Pawlowski [Tue, 7 Feb 2017 01:32:40 +0000 (01:32 +0000)]
Propagate BT5 specific scan result properties up the stack (2/3)
am: 7de0f9b78f

Change-Id: I9a273c35111bfc60f40be0d11e24f48c75095abb

7 years agoUse new event type in BLE scan
Jakub Pawlowski [Tue, 7 Feb 2017 01:32:38 +0000 (01:32 +0000)]
Use new event type in BLE scan
am: d64bf4f6f8

Change-Id: Ia3380083b57bf98a6d9188541292b6a081e6ea6b

7 years agoMerge changes from topic 'bt5_scan_props'
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

7 years agoAdd a mechanism to configure the default A2DP codec priorities
Pavlin Radoslavov [Mon, 6 Feb 2017 23:12:30 +0000 (23:12 +0000)]
Add a mechanism to configure the default A2DP codec priorities
am: a6ba5aca4e

Change-Id: Ifd4cad913643a94b907611d7cf2d1f8b5e5fe2d5

7 years agoBLE Advertising Manager test improvements
Jakub Pawlowski [Mon, 6 Feb 2017 22:12:45 +0000 (22:12 +0000)]
BLE Advertising Manager test improvements
am: 3b2765696a

Change-Id: Ib35e49f00b807af79ba4f711dd1f6154705896c4

7 years agoPropagate BT5 specific scan result properties up the stack (2/3)
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

7 years agoUse new event type in BLE scan
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

7 years agoAdd a mechanism to configure the default A2DP codec priorities
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

7 years agoBLE Advertising Manager test improvements
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

7 years agoTemporarily disable WBS; to be replaced with eSCO
Andre Eisenbach [Sat, 4 Feb 2017 01:08:02 +0000 (01:08 +0000)]
Temporarily disable WBS; to be replaced with eSCO
am: f6d79c5d6c

Change-Id: I39397f3f4788e17073c3994d587a6ae50aa4486a

7 years agoTemporarily disable WBS; to be replaced with eSCO
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

7 years agoFix a memory leak in the osi allocation tracker
Pavlin Radoslavov [Fri, 3 Feb 2017 05:40:55 +0000 (05:40 +0000)]
Fix a memory leak in the osi allocation tracker
am: 1aa40037fd

Change-Id: Ia2163e96693c890005c88ce79726710f378116c7

7 years agoFix a memory leak in the osi allocation tracker
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

7 years agoMerge "Use local CCB variable in loop to check GAP CCB pool"
Venkata Ramana Rao [Fri, 3 Feb 2017 02:17:12 +0000 (02:17 +0000)]
Merge "Use local CCB variable in loop to check GAP CCB pool"
am: 064e8d1273

Change-Id: Ifac39dd2cb84ea065bed2e254aef40bd52f2ab81

7 years agoMerge "Use local CCB variable in loop to check GAP CCB pool"
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"

7 years agoInitializing the SDP event message pointer before sending
Manu Viswanadhan [Thu, 2 Feb 2017 23:57:01 +0000 (23:57 +0000)]
Initializing the SDP event message pointer before sending
am: 65cca8f2cc

Change-Id: Id9a32b5f07e3d8bbe175d99acf4127a2612a4de2

7 years agoUse 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

7 years agoInitializing the SDP event message pointer before sending
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

7 years agotest_vendor: Test fixes for AsyncManager
Myles Watson [Thu, 2 Feb 2017 18:20:36 +0000 (18:20 +0000)]
test_vendor: Test fixes for AsyncManager
am: e36d707b00

Change-Id: I33f04f7c75881beee1969d079e757565c5ed0420

7 years agoMerge changes Ie172ca37,Idf714e51
Andre Eisenbach [Thu, 2 Feb 2017 18:09:32 +0000 (18:09 +0000)]
Merge changes Ie172ca37,Idf714e51
am: 4bfa6b5205

Change-Id: I513824b35ee04268d8b3ec565432b8bb1cb3c736

7 years agoRemove LPM code from the stack
Myles Watson [Thu, 2 Feb 2017 18:09:31 +0000 (18:09 +0000)]
Remove LPM code from the stack
am: d56ef46502

Change-Id: I4a3d95d0ed13dff933694adffed018c19e030c5c

7 years agobtif: Remove platform-specific address logic
Myles Watson [Thu, 2 Feb 2017 18:09:25 +0000 (18:09 +0000)]
btif: Remove platform-specific address logic
am: 1c7a152a96

Change-Id: Ifd695e65d43f5e10d224f17dbabc0eafb3efdc03

7 years agoMerge "Initial HIDL conversion"
Andre Eisenbach [Thu, 2 Feb 2017 18:09:09 +0000 (18:09 +0000)]
Merge "Initial HIDL conversion"
am: 8a8ed27f87

Change-Id: Id6d8440432084b95a1bf0f430b3cb73379ae348d

7 years agotest_vendor: Test fixes for AsyncManager
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

7 years agoMerge changes Ie172ca37,Idf714e51
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

7 years agoMerge "Initial HIDL conversion"
Andre Eisenbach [Thu, 2 Feb 2017 18:00:29 +0000 (18:00 +0000)]
Merge "Initial HIDL conversion"

7 years agoHandled invalid MTU Size in L2cap Process Commands
Ajay Kumar [Thu, 2 Feb 2017 01:57:05 +0000 (01:57 +0000)]
Handled invalid MTU Size in L2cap Process Commands
am: 633a5bc320

Change-Id: I8d6b1d76cb8ff644fbb9cbfff987e3f80bb04522

7 years agoRemove LPM code from the stack
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

7 years agobtif: Remove platform-specific address logic
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

7 years agoInitial HIDL conversion
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

7 years agoHandled invalid MTU Size in L2cap Process Commands
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

7 years agoAdd memory allocation statistics to the Bluetooth dumpsys output
Pavlin Radoslavov [Wed, 1 Feb 2017 17:18:30 +0000 (17:18 +0000)]
Add memory allocation statistics to the Bluetooth dumpsys output
am: 0b4f3f7efb

Change-Id: I6a06bb516ba11327e32c5ede504a92ae79ab20ea

7 years agoAdd memory allocation statistics to the Bluetooth dumpsys output
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

7 years agoUpdate the A2DP Codec Config API
Pavlin Radoslavov [Tue, 31 Jan 2017 19:08:15 +0000 (19:08 +0000)]
Update the A2DP Codec Config API
am: 494e53e904

Change-Id: I02831600027b777d41dc5c1b67ac844fa03e9118

7 years agoUpdate the A2DP Codec Config API
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

7 years agoMerge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into master.
Stephen Li [Fri, 27 Jan 2017 01:22:43 +0000 (01:22 +0000)]
Merge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into 
am: 665bcf8f2d

Change-Id: I3a3fc2d0cc9f6681178a5877b127ad55f98be9bc

7 years agoMerge "Remove HC_BUFFER_HDR_T"
Andre Eisenbach [Fri, 27 Jan 2017 01:22:32 +0000 (01:22 +0000)]
Merge "Remove HC_BUFFER_HDR_T"
am: a6f6077be8

Change-Id: I72c589c900c83b6adcd229248dc5b8590a73b64b

7 years agoMerge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into master.
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

7 years agoMerge "Remove HC_BUFFER_HDR_T"
Treehugger Robot [Thu, 26 Jan 2017 23:22:12 +0000 (23:22 +0000)]
Merge "Remove HC_BUFFER_HDR_T"

7 years agoRemove 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

7 years agoIntegration of the AAC codec for A2DP source
Pavlin Radoslavov [Thu, 26 Jan 2017 19:20:31 +0000 (19:20 +0000)]
Integration of the AAC codec for A2DP source
am: d5f4960b42

Change-Id: I75433922a48fab734ea5d0ee01c93d3a44cde8d8

7 years agoIntegration of the AAC codec for A2DP source
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

7 years agoMerge "Update UUIDs immediately on NVRAM"
Srinu Jella [Wed, 25 Jan 2017 20:02:15 +0000 (20:02 +0000)]
Merge "Update UUIDs immediately on NVRAM"
am: 87cf1322fc

Change-Id: I7d302edf5c42ceb90f3e1692e243410063218636

7 years agoMerge "Update UUIDs immediately on NVRAM"
Treehugger Robot [Wed, 25 Jan 2017 19:55:59 +0000 (19:55 +0000)]
Merge "Update UUIDs immediately on NVRAM"

7 years agoMerge "Corrected default value assignments in Bluetooth A2DP Metrics"
Jack He [Wed, 25 Jan 2017 19:30:42 +0000 (19:30 +0000)]
Merge "Corrected default value assignments in Bluetooth A2DP Metrics"
am: df1668926d

Change-Id: Ibeca5167e014e7ef51da639bcc12d3b2d89ec9b9

7 years agoMerge "Corrected default value assignments in Bluetooth A2DP Metrics"
Treehugger Robot [Wed, 25 Jan 2017 19:28:02 +0000 (19:28 +0000)]
Merge "Corrected default value assignments in Bluetooth A2DP Metrics"

7 years agoUpdate UUIDs immediately on NVRAM
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

7 years agoRemove 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

7 years agoHID: Fix forced disconnection flow.
Ivan Podogov [Wed, 25 Jan 2017 00:12:23 +0000 (00:12 +0000)]
HID: Fix forced disconnection flow.
am: 367373ba8b

Change-Id: Ia72cfb5979735bdb2b091291719ac895331bba7e

7 years agoHID: Fix forced disconnection flow.
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

7 years agoCorrected default value assignments in Bluetooth A2DP Metrics
Jack He [Fri, 20 Jan 2017 19:17:44 +0000 (11:17 -0800)]
Corrected default value assignments in Bluetooth A2DP Metrics

* In certain cases btif_a2dp_source_stop_audio_req() could be called before
  btif_a2dp_source_start_audio_req() is called, resulting in session_start_us
  to be 0. In this case, audio_duration_ms = time_get_os_boottime_us() - 0
  will be a very large number that is not the actual audio duration. This
  CL marks audio_duration_ms as -1 in the above situation so that we can
  differentiate between valid and invalid audio durations
* Set default timer and counter values to 0 when
  tx_queue_dequeue_stats.total_updates > 1
* Move update_scheduling_stats for tx_queue_enqueue_stats to
  btif_a2dp_source_audio_handle_timer as we intend to capture the time
  intervals for enqueue scheduling instead of time intervals between
  frame enqueue (i.e. one scheduling event can enqueue multiple frames)
* Use tx_queue_enqueue_stats for metrics instead of *dequeue* since only
  enqueue is triggered by timer event

Bug: 33694310
Test: Code compilation, BtFunhausMetricsTest
Change-Id: I10984920afd4d77f07a5ac75736f8dcd69b13af8
(cherry picked from commit 5a9925784a4a34811ae29608b67dee4a580c226b)

7 years agoAdd advertising handle zero quirk
Jakub Pawlowski [Mon, 23 Jan 2017 23:43:56 +0000 (23:43 +0000)]
Add advertising handle zero quirk
am: 6d75adcc03

Change-Id: I520cd3d1aff332d9eb0ccce13f36dc0aceb2f25e

7 years agoAdd advertising handle zero quirk
Jakub Pawlowski [Mon, 23 Jan 2017 22:03:19 +0000 (14:03 -0800)]
Add advertising handle zero quirk

Some controllers are strict about VSC handle mapping, and don't allow
using zero value.

Test: manual test
Change-Id: Ia2df17af16e0e4da375d6e7d5b5f882ced508ce9

7 years agoFix the GATT server and HOGP disconnect
IHLHO KIM [Mon, 23 Jan 2017 18:56:56 +0000 (18:56 +0000)]
Fix the GATT server and HOGP disconnect
am: c176ff364e

Change-Id: I13a676f6d9beac6f5cf07960c8b9cfe4fc2a7a68

7 years agoFix the GATT server and HOGP disconnect
IHLHO KIM [Fri, 13 Jan 2017 06:27:38 +0000 (06:27 +0000)]
Fix the GATT server and HOGP disconnect

GATT server disconnect and HOGP disconnect are not working after the
following commit: a62adcab30929566b435891611232566bd69204a.

‘BTA_GATTS_CancelOpen’ makes ‘gatt_update_app_hold_link_status’
return FALSE value. As a result, ‘BTA_GATTS_Close’ cannot disconnect
the link. The sequence has to be changed like GATT client.

And the above mentioned fix removed ‘found’ checking routine in
‘gatt_update_app_hold_link_status’.

It makes two app hold links with same gatt_if when HOGP is connected and
background connection is added. But HOGP disconnect removes only one held
link. So HOGP is never disconnected.

The ‘found’ checking routine has to be rolled back.

Test: manual
Change-Id: Ibea825b5cc844195f0cf4a30cbcca831880c9088

7 years agoFix advertising timeout behaviour.
Jakub Pawlowski [Sat, 21 Jan 2017 08:59:37 +0000 (08:59 +0000)]
Fix advertising timeout behaviour.
am: 657baed5df

Change-Id: I026f8798a67438e200f0a1b9c078776d7065e419

7 years agoFix advertising timeout behaviour.
Jakub Pawlowski [Fri, 20 Jan 2017 13:33:38 +0000 (05:33 -0800)]
Fix advertising timeout behaviour.

When advertising is enabled with timeout, enable callback was not
called. Also we were not scheduling the disable operation after the
timeout passes. This patch fixes that. It also make sure that the
timeout callback is called on proper thread.

Bug: 34440704
Test: sl4a ConcurrentBleAdvertising:test_timeout
Change-Id: I233c2692c690f55ef6243325640e48b37818c9d5

7 years agoMerge "Set alarm's queue to NULL on alarm expired"
Kamal Negi [Fri, 20 Jan 2017 23:40:29 +0000 (23:40 +0000)]
Merge "Set alarm's queue to NULL on alarm expired"
am: 1ad559cf00

Change-Id: Icfe0576b893be813645375f3da234ee7a3fa4455

7 years agoMerge "Set alarm's queue to NULL on alarm expired"
Treehugger Robot [Fri, 20 Jan 2017 23:36:39 +0000 (23:36 +0000)]
Merge "Set alarm's queue to NULL on alarm expired"

7 years agoMerge "Synchronize hl data operations"
Srinu Jella [Fri, 20 Jan 2017 23:29:57 +0000 (23:29 +0000)]
Merge "Synchronize hl data operations"
am: 0d8bb2b099

Change-Id: I65ef2e27332de47e921f15aaca76668cc75f9567

7 years agoMerge "Synchronize hl data operations"
Treehugger Robot [Fri, 20 Jan 2017 23:25:44 +0000 (23:25 +0000)]
Merge "Synchronize hl data operations"

7 years agoUpdate error check for LE read remote feature event
Nagarjuna Kristam [Fri, 20 Jan 2017 21:41:23 +0000 (21:41 +0000)]
Update error check for LE read remote feature event
am: 86d5b5658c

Change-Id: Icdb02974837695995dacb1598772d4b46af66d9b

7 years agoUpdate error check for LE read remote feature event
Nagarjuna Kristam [Tue, 13 Dec 2016 09:00:45 +0000 (14:30 +0530)]
Update error check for LE read remote feature event

When a BLE remote read remote feature complete event is received
initial commands flow is proceeding if error code is not connection
failed to establish (0x3E). Instead, the flow should fail on any
error.

Test: Re-connection stress tests with LE device
Change-Id: I4ab80b6601f5f852fcf8da2911807438584fd3f4

7 years agoSet alarm's queue to NULL on alarm expired
Kamal Negi [Mon, 19 Sep 2016 08:46:56 +0000 (14:16 +0530)]
Set alarm's queue to NULL on alarm expired

Use Case: Repeated BT ON/OFF

Failure: ANR due to race condition between random advertisement
address generation completion(adv_raddr_timer) and BT shutdown.

Steps: SNS Stress testing.

Root Cause: Race condition happens between random advertisement
address generation completion(adv_raddr_timer) and BT shutdown.

Fix:  For non-periodic alarms, set alarm's queue to NULL once alarm
expired.

Test: mm -j8

Change-Id: Idf8e2bebdc2ca7621aef06dd5f2075ef2c5fa08c

7 years agoBluetooth: Handle get RSSI timeout gracefully
Satish Kodishala [Fri, 20 Jan 2017 21:25:49 +0000 (21:25 +0000)]
Bluetooth: Handle get RSSI timeout gracefully
am: b0014dae41

Change-Id: I55f9d891c58b82e12073fe57d1d19bdf64f6019d

7 years agoBTA HF CLIENT: Unset initial SCO value
Sanket Agarwal [Fri, 20 Jan 2017 21:21:48 +0000 (21:21 +0000)]
BTA HF CLIENT: Unset initial SCO value
am: 882760d186

Change-Id: I1342f805da9d37e542e137bad9eda54bab8287c2

7 years agoSynchronize hl data operations
Srinu Jella [Wed, 30 Nov 2016 09:55:12 +0000 (15:25 +0530)]
Synchronize hl data operations

Use Case: BT crash seen while transferring data
using HDP APP to remote health device.

Steps:
1. Pair with HDP device
2. Run HDP APP and transfer data to Remote HDP device.

Failure: BT automatically resets and recovers.

Root Cause: Synchronize BITF HL free buffer as simultaneously
free buffer from BTIF and BTU thread lead to sigabort.

Fix: Validate Tx packet before memcpy as it can be free
from different thread.

Test: mm -j8
Change-Id: I566f62ce02c8e95c9f4b8d7155132e4434657f66