OSDN Git Service

android-x86/system-bt.git
8 years agoMerge "service: Add Start|StopScan API to LowEnergyClient"
Jakub Pawlowski [Wed, 13 Jan 2016 23:00:35 +0000 (23:00 +0000)]
Merge "service: Add Start|StopScan API to LowEnergyClient"

8 years agoMerge "service: Parametrize LowEnergyClient with Adapter for tests"
Jakub Pawlowski [Wed, 13 Jan 2016 23:00:16 +0000 (23:00 +0000)]
Merge "service: Parametrize LowEnergyClient with Adapter for tests"

8 years agoOffload config save functionality to BTIF thread
Srinu Jella [Thu, 24 Dec 2015 12:10:52 +0000 (17:40 +0530)]
Offload config save functionality to BTIF thread

Offload config save functionality to btif thread from
timer thread as timer callback thread is critical in
a2dp playback case.

If the timer callback thread is busy in config save due
to IO operations, it may lead to a2dp audio choppy.

Fix to avoid the "bt_config.conf" file corruption from
the file system. This will avoid losing the paired
information in some corner case, such as abrupt power
off and on. This patch will ensure bt_config is saved to
NVRAM.

Bug: 24875861
CRs-Fixed: 953993
Change-Id: I893e9afefa89cbab6e7ddd8835ca77d3e316874c

8 years agoCorrectly verify return value of BTM_CancelInquiry
Yan Laijun [Wed, 13 Jan 2016 14:28:01 +0000 (22:28 +0800)]
Correctly verify return value of BTM_CancelInquiry

Change-Id: Iefb38023bc2b3e390eec14516f954e36f34ed5b4
Signed-off-by: Yan Laijun <yan.laijun@gmail.com>
8 years agoservice: Add Start|StopScan API to LowEnergyClient
Arman Uguray [Mon, 30 Nov 2015 23:36:17 +0000 (15:36 -0800)]
service: Add Start|StopScan API to LowEnergyClient

Added the StartScan and StopScan methods to LowEnergyClient and basic unit
tests. This currently only supports regular scans with no batch scan or
hw/sw filters.

Bug: 25744656
Change-Id: Iddf6e897377f90a5eef81ef36696b1d7074a7dab

8 years agoservice: Parametrize LowEnergyClient with Adapter for tests
Jakub Pawlowski [Tue, 12 Jan 2016 21:51:35 +0000 (13:51 -0800)]
service: Parametrize LowEnergyClient with Adapter for tests

Bug: 25744656
Change-Id: I4eee8098c264c2135c2bb4f02a2319ba0dfec978

8 years agoservice/hal: Add per-client Scan interface
Arman Uguray [Mon, 30 Nov 2015 22:58:11 +0000 (14:58 -0800)]
service/hal: Add per-client Scan interface

Added a new per-client scan function to hal::BluetoothGattInterface.
The intention here is to push most of the per-client reference counting,
scan settings and filter coalescence below the HAL. This CL does this
first inside the Bluetooth daemon's HAL wrappers in a way that
represents what the future HAL scan API might look like.

This implements a basic reference counting scheme to share the global
controller scan session among different clients.

Bug: 25744656
Change-Id: I20c5cfc291be70d72576ebee014cc13544d5a299

8 years agoservice: use client_id instead of client_if
Jakub Pawlowski [Wed, 13 Jan 2016 18:19:34 +0000 (10:19 -0800)]
service: use client_id instead of client_if

Change-Id: Id045c81f748c99ab0525ce8869ef9cdd0207712e

8 years agoMerge "service: Rename variable holding advertisement settings"
Jakub Pawlowski [Tue, 12 Jan 2016 22:58:03 +0000 (22:58 +0000)]
Merge "service: Rename variable holding advertisement settings"

8 years agoservice: Rename variable holding advertisement settings
Jakub Pawlowski [Tue, 12 Jan 2016 21:43:33 +0000 (13:43 -0800)]
service: Rename variable holding advertisement settings

There will be more variables with settings. Make sure they
all have unique meaningful names.

Change-Id: I4b23fd3fa5a16f9132801b9141e4f8ed0be33be7

8 years agoMerge "Additional headsets blacklisted for absolute volume"
Andre Eisenbach [Tue, 12 Jan 2016 19:31:12 +0000 (19:31 +0000)]
Merge "Additional headsets blacklisted for absolute volume"

8 years agoservice: Make Adapter mockable.
Arman Uguray [Thu, 19 Nov 2015 23:57:57 +0000 (15:57 -0800)]
service: Make Adapter mockable.

Turned the Adapter class into an abstract interface so that we
can inject a mock Adapter in tests where there is an Adapter dependency
but where we don't care about side-effects/stack-calls created from the
Adapter.

Bug: 25744656

Change-Id: Ibf7dd9a4cc1008cbb36e60f7b87cfcb4ef2bd5d8

8 years agoAdditional headsets blacklisted for absolute volume
Andre Eisenbach [Tue, 12 Jan 2016 02:06:44 +0000 (18:06 -0800)]
Additional headsets blacklisted for absolute volume

Bug: 26070064
Change-Id: Ida1faec964982a4630f42ab378fe5b6dd6e21c16

8 years agoAssert on memory allocation failure
Andre Eisenbach [Mon, 11 Jan 2016 20:24:14 +0000 (12:24 -0800)]
Assert on memory allocation failure

This CL is a pre-cursor to cleaning up repeated memory allocation code
full of null-pointer checks. In the vast majority of cases in the
Bluetooth stack, a failed allocation is not recoverable and results in
undefined behaviour. By asserting, we can ensure we have a shot at
catching and fixing any issues not caused by OOM conditions.

Bug: 26494317
Change-Id: I53dff98c596068211934a1808f90de2d4484f952

8 years agoMerge "service: Add global scan support getters"
Jakub Pawlowski [Mon, 11 Jan 2016 22:15:47 +0000 (22:15 +0000)]
Merge "service: Add global scan support getters"

8 years agoImplement OOB pairing for LE devices using TK.
Jakub Pawlowski [Tue, 1 Dec 2015 20:14:22 +0000 (12:14 -0800)]
Implement OOB pairing for LE devices using TK.

This patch implements OOB pairing for LE devices using TK. Patches
for other pairing methods, and other transports will follow.

Bug: 22932952
Change-Id: Iad3c0c035de3b5a62ef24d3e3b655773fa03d5c1

8 years agoAdd script to change data types to native C types
Andre Eisenbach [Wed, 30 Dec 2015 01:49:01 +0000 (17:49 -0800)]
Add script to change data types to native C types

Please see source code for usage information and application.

Bug: 22948224
Change-Id: Ia2dbd618ddcdf13abf3c63d4649147f400e00cfe

8 years agoA2DP task media alarm non-null protection
Ajay Panicker [Wed, 6 Jan 2016 20:11:05 +0000 (12:11 -0800)]
A2DP task media alarm non-null protection

Prevent the alarm from being started multiple times.

Bug: 26277592
Change-Id: I764f93bab5490bf5f3942a1beb706457197d3ec1

8 years agonet_test_bluetooth: fix inconsistency in set/get name test
Ajay Panicker [Tue, 5 Jan 2016 23:03:19 +0000 (15:03 -0800)]
net_test_bluetooth: fix inconsistency in set/get name test

Fixed an issue where the set/get name test would fail every so often
due to the fact that the old name property would become invalid after
the properties array was freed.

Bug: 25793348
Change-Id: I4513219da2fb947b3b199f25a61c308b9fced8b6

8 years agoFix bug where a bonded device could enter BONDING and BONDED states again.
Sharvil Nanavati [Wed, 6 Jan 2016 00:23:02 +0000 (16:23 -0800)]
Fix bug where a bonded device could enter BONDING and BONDED states again.

The following sequence of events was observed:
- start bonding with device A
- bond state for A goes from 10 -> 11 -> 12
- everyone's happy
- start bonding with device B
- bond state for B goes from 10 -> 11
- bond state for A goes from 12 -> 11 -> 12

The bond state for A should not have been changed in the last step
since it was not participating in any bonding procedure at the time.

The above sequence can be reproduced if a device D bonds with
A and takes on the slave role and then D bonds with B and switches
to a master role. When D performs the role switch, it receives an
updated link key from A.

Since the link key update procedure is tied in with the pairing flow,
we see spurious bond state changes. This CL checks the pairing control
block to see if D is, in fact, pairing with A and if not, it skips the
bond state updates.

Bug: 25870383
Change-Id: Ic6ff548dbe4e960c965bdc9ef5c50a263b9b3b22

8 years agoBluetooth: Remove std=c++11
Andreas Gampe [Wed, 6 Jan 2016 00:29:05 +0000 (16:29 -0800)]
Bluetooth: Remove std=c++11

It's the default now.

Change-Id: Ice463e6e74d56bffd00a80824721dbe57241ea06

8 years agoMerge "Bluetooth: Silence unused-parameter warning"
Andreas Gampe [Tue, 5 Jan 2016 22:10:20 +0000 (22:10 +0000)]
Merge "Bluetooth: Silence unused-parameter warning"

8 years agoBluetooth: Silence unused-parameter warning
Andreas Gampe [Tue, 5 Jan 2016 21:52:00 +0000 (13:52 -0800)]
Bluetooth: Silence unused-parameter warning

Silence these for now. Reduce build noise.

Change-Id: I787c31f60c8d24e3dd2bae8d1acaa7592b7e29ba

8 years agoMerge "Fix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false"
Sharvil Nanavati [Tue, 5 Jan 2016 18:01:59 +0000 (18:01 +0000)]
Merge "Fix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false"

8 years agoMerge "Fix crash in HFP client's +COPS parsing code."
Sharvil Nanavati [Tue, 5 Jan 2016 16:58:05 +0000 (16:58 +0000)]
Merge "Fix crash in HFP client's +COPS parsing code."

8 years agoFix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false
Sharvil Nanavati [Thu, 17 Dec 2015 14:23:19 +0000 (06:23 -0800)]
Fix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false

Without this change, setting AVRC_ADV_CTRL_INCLUDED to false would
result in the native code reporting the remote device supports
absolute volume even though we don't.

Bug: 26070064
Change-Id: I5b88fa0adb89983de28a216898a1d8957fa454a1

8 years agoFix crash in HFP client's +COPS parsing code.
Sharvil Nanavati [Tue, 5 Jan 2016 01:21:05 +0000 (17:21 -0800)]
Fix crash in HFP client's +COPS parsing code.

If the Audio Gateway sends a malformed +COPS message (an operator
name > 16 characters) then the %n in sscanf format specifier is
ignored and sscanf will not assign a value to the appropriate
argument.

In such a case, the existing code will perform pointer arithmetic
using an uninitialized stack variable as an offset which may result
in pointing to an invalid memory address. When that memory is
subsequently dereferenced, we observe a crash.

This change ensures that the stack does not crash even if an invalid
+COPS message is sent from the Audio Gateway.

Bug: 24871011
Change-Id: I9bb42c75bcd90487831fc6950c571c87098559e7

8 years agoOnly send first 16 characters of operator name in +COPS.
Sharvil Nanavati [Tue, 5 Jan 2016 01:15:18 +0000 (17:15 -0800)]
Only send first 16 characters of operator name in +COPS.

According to the HFP spec, the operator name is required to be at
most 16 characters long.

Bug: 24871011
Change-Id: I9987de57a327348fc2203b9502e9df446a87793f

8 years agoFix RFCOMM Rx speed of transfer
Hemant Gupta [Thu, 27 Aug 2015 05:18:07 +0000 (10:48 +0530)]
Fix RFCOMM Rx speed of transfer

Use Case:
1. OPP Rx use case on the DUT Side
2. Transfer 10Mb+ of file from remote to DUT
3. Observe speeds over RFCOMM (expected 1.5Mbps+)

Failure:
Actual speeds lesser than 1.5Mbps

Root Cause:
Rx bottlenecks seen due to frequent timer operation
during incoming data on RFCOMM

Fix:
BUSY and IDLE states of BT Power manager are already
handled inside the stack and no need to explicitly set
IDLE and BUSY states from JV layer anymore.

Bug: 22487461
Change-Id: Icdc25c52103d6a849cc6e12656d9c69f5e152b05

8 years agoFix flaky AlarmTest.test_set_long_*
Marie Janssen [Tue, 29 Dec 2015 23:34:55 +0000 (15:34 -0800)]
Fix flaky AlarmTest.test_set_long_*

The "long" tests need some leeway for the timer to be checked because
sometimes it takes ~1-2ms to check timers for wakelock scheduling.

Bug: 26140385
Change-Id: I362166f1d93a811f3933776294775b594226ab30

8 years agoUse GID "wakelock" to control access to kernel wakelock
Pavlin Radoslavov [Tue, 24 Nov 2015 01:16:29 +0000 (17:16 -0800)]
Use GID "wakelock" to control access to kernel wakelock

Bug: 25864142
Change-Id: I5103471b0ec28c26c18b891fc3be07c000067b4e

8 years agoMerge "net_test_bluetooth: Improve set/get name logic"
Andre Eisenbach [Wed, 23 Dec 2015 03:22:45 +0000 (03:22 +0000)]
Merge "net_test_bluetooth: Improve set/get name logic"

8 years agoFix BT connection failures
Devin Kim [Thu, 3 Dec 2015 21:19:20 +0000 (13:19 -0800)]
Fix BT connection failures

When HFP connection failed establishing between phone and watch, it can't
recover RFCOMM status which causes that HFP connection will not be made
unless BT radio goes off and comes back on. RFCOMM and HFP both trying to
open RFCOMM control channel at nearly same time, at some point, there's
a possibility that SABM packet didn't reach out to BT controller to connect
to phone from watch with HFP while phone tries to connect to watch with
AW RFCOMM.

This will take care of pending SABM packet to reach out to controller
properly so that RFCOMM status will not be messed.

Bug: 24285000
Bug: 25579482
Bug: 25579423
Bug: 25578997
Change-Id: Icc26b86c644ebd8d1c12a2fb4e94d04ba16cc2dd

8 years agoRemove "block" parameter from eager_reader_read()
Andre Eisenbach [Fri, 20 Nov 2015 22:07:24 +0000 (14:07 -0800)]
Remove "block" parameter from eager_reader_read()

Setting this parameter to true did not work and did not behave as
expected. The functionality provided by this parameter is also not
necessary, thus removing code.

Change-Id: I29e60da4adf1d1fc84d8ec9a590de89e94bb7900

8 years agoProperly reset NONBLOCK flag in semaphore_try_wait()
Andre Eisenbach [Wed, 23 Dec 2015 01:50:24 +0000 (17:50 -0800)]
Properly reset NONBLOCK flag in semaphore_try_wait()

Without this fix, calling semaphore_try_wait() on a semaphore that
wasn't currently set, would leave the NONBLOCK flag on the file
descriptor as a side-effect.

Also added a unit test for semaphores, including a test specifically for
this condition.

Change-Id: I0ea37bb68b14c76febaab25b3aee1bb4f5acee8c

8 years agonet_test_bluetooth: Improve set/get name logic
Ajay Panicker [Tue, 22 Dec 2015 21:09:48 +0000 (13:09 -0800)]
net_test_bluetooth: Improve set/get name logic

Without this CL semaphore_wait would instantly return due to the fact
that enabling the adapter would cause the properties callback to post
immediatly. Also prevented the test from returning a false positive if the
original device name was the same as the test name.

Change-Id: I987efcb9a5ef58209d37d2fc21f3c149fb3e556c

8 years agoBlacklist devices for absolute volume control
Andre Eisenbach [Fri, 11 Dec 2015 20:32:21 +0000 (12:32 -0800)]
Blacklist devices for absolute volume control

Some devices do not play well with absolute volume control. They either
play back music at unacceptably loud volume levels or provide
insufficiently granular volume control where a single "step" of volume
change results in unexpectedly large jumps in volume.

Bug: 2607006426060431
Change-Id: I5a336fba87119325b47a5ad385e9c48a631f2121

8 years agonet_test_bluetooth: fix set and get name tests
Ajay Panicker [Mon, 21 Dec 2015 23:05:10 +0000 (15:05 -0800)]
net_test_bluetooth: fix set and get name tests

Fixed the get and set name tests so that they are more consistent and robust.

Change-Id: I4b76357eff05531c4e52cd6de03eb3b8b969062b

8 years agoMerge "Remove dependency on base::Hash"
Christopher Wiley [Mon, 21 Dec 2015 15:50:16 +0000 (15:50 +0000)]
Merge "Remove dependency on base::Hash"

8 years agoRemove dependency on base::Hash
Christopher Wiley [Fri, 18 Dec 2015 23:57:36 +0000 (15:57 -0800)]
Remove dependency on base::Hash

This function is changing to just use std::hash anyway.  This is
slightly less efficient because of the copies, but doing it inline
makes the cost more explicit to bluetooth authors.

Bug: 26253162
Change-Id: I940ea8ce8aa27808cef8a8b9398a7756db3b5ca3
Test: Compiles

8 years agoFix memory leak in vendor layer
Marie Janssen [Fri, 18 Dec 2015 19:07:08 +0000 (11:07 -0800)]
Fix memory leak in vendor layer

When the vendor library transmits without giving a callback, the vendor
translation receives a buffer it's in charge of deallocating.

When there is a callback, it's the vendor library's job to deallocate
it.

Change-Id: I65b0a037b28103ba46a33a1baea942f7e724eb7c

8 years agoRemove repeated code in HF BTIF init function.
yanlaijun [Thu, 17 Dec 2015 01:53:54 +0000 (09:53 +0800)]
Remove repeated code in HF BTIF init function.

Change-Id: I25a07e9cdb29ef31696a156c6f7ff5b57f4f5cfb
Signed-off-by: yanlaijun <yan.laijun@gmail.com>
8 years agoBluetooth: Silence warnings
Andreas Gampe [Wed, 16 Dec 2015 18:53:07 +0000 (10:53 -0800)]
Bluetooth: Silence warnings

Silence unused-parameters warnings coming from libchrome.

Bug: 26228533
Change-Id: I08bc474c905cd2cf7b1c0492ee37187c499ddf52

8 years agonet_test_bluetooth: GATT test refactor
Ajay Panicker [Mon, 7 Dec 2015 22:15:33 +0000 (14:15 -0800)]
net_test_bluetooth: GATT test refactor

Properly integrating the GATT tests in net_test_bluetooth to utilize GUnit
correctly. Contains all the GATT tests and the base class the GATT tests use.
Also reorganized the files.

Bug: 25793348
Change-Id: I5a547a2528c20d6baa9b1fb6d0b956f718d736cc

8 years agotest: Add bluetoothtbd_test and net_test_bluetooth to runner
Scott James Remnant [Wed, 11 Nov 2015 20:41:08 +0000 (12:41 -0800)]
test: Add bluetoothtbd_test and net_test_bluetooth to runner

Change-Id: Iee7365cc366793d3f88cd8b9a6be454c5b853863

8 years agoservice: Add global scan support getters
Arman Uguray [Tue, 17 Nov 2015 21:29:55 +0000 (13:29 -0800)]
service: Add global scan support getters

Added a mutex that protects the local_le_features structure inside
Adapter. Added the following functions related to scan support:

  - Adapter::GetTotalNumberOfTrackableAdvertisements
  - Adapter::IsOffloadedFilteringSupported
  - Adapter::IsOffloadedScanBatchingSupported

Bug: 25744656
Change-Id: Id4d63486d1c51f2eddbd095a0a3ef6e6bb80c529

8 years agoservice: Add scan structures
Arman Uguray [Tue, 17 Nov 2015 21:11:03 +0000 (13:11 -0800)]
service: Add scan structures

Added the ScanFilter, ScanSettings, ScanResult structures that are
used in the BLE scan API.

Bug: 25744656
Change-Id: Id1bb28e7ebe85fd40013876aa097e1d0f0a4e471

8 years agoservice: Add connection state tracking to Adapter
Arman Uguray [Fri, 13 Nov 2015 23:05:48 +0000 (15:05 -0800)]
service: Add connection state tracking to Adapter

Added the IsDeviceConnected method to Adapter and also an
Observer method that other components can use to track the ACL
state between the local adapter and a remote device.

Bug: 25157450
Change-Id: If9bc25ab58b4a9b5430753405fb64834c0946050

8 years agoMerge "Rename libchrome-host to libchrome."
Alex Deymo [Thu, 10 Dec 2015 22:18:34 +0000 (22:18 +0000)]
Merge "Rename libchrome-host to libchrome."

8 years agoClean up A2D_ParsSbcInfo indentation
Ian Coolidge [Fri, 4 Dec 2015 22:15:03 +0000 (14:15 -0800)]
Clean up A2D_ParsSbcInfo indentation

This should introduce no change in behavior.

Change-Id: I14faa73d898f69bd15aff7c3857c671ebe1628c9

8 years agoMerge "Fix p_info increment in A2D_ParsSbcInfo"
Pavlin Radoslavov [Thu, 10 Dec 2015 19:34:26 +0000 (19:34 +0000)]
Merge "Fix p_info increment in A2D_ParsSbcInfo"

8 years agoAdd default implementations for observer callbacks
Ajay Panicker [Thu, 10 Dec 2015 01:44:59 +0000 (17:44 -0800)]
Add default implementations for observer callbacks

Added defaults functions that do nothing for the bluetooth observers. Also
removed empty definition of the discovery callback in adapter. A little cleanup
was done too.

Change-Id: I93b6134f25e30e30cc2072cb4c99ce06aa781849

8 years agoFix the fixed_queue_try_remove_from_queue() internals
Pavlin Radoslavov [Sat, 14 Nov 2015 02:36:56 +0000 (18:36 -0800)]
Fix the fixed_queue_try_remove_from_queue() internals

Calling fixed_queue_try_remove_from_queue() should update
queue->dequeue_sem and queue->enqueue_sem as appropriate.

Also:
 * Removed function fixed_queue_init() because it is not used
 * Added fixed_queue_test.cpp unit tests for fixed_queue
 * Updated some of the fixed_queue API description

Bug: 25973053

Change-Id: I3a0931f34fed34a2d60f82904601ef4157ee8ff9

8 years agoRename libchrome-host to libchrome.
Alex Deymo [Thu, 10 Dec 2015 02:08:33 +0000 (18:08 -0800)]
Rename libchrome-host to libchrome.

Update the name of the libchrome-host library to the match the one used
in the target.

Bug: 24619596
TEST=make dist

Change-Id: I73e906a0683142cc7e43237d4c5fa20c27acc6cc

8 years agoFix crashes with lots of discovered LE devices
Marie Janssen [Wed, 9 Dec 2015 18:08:25 +0000 (10:08 -0800)]
Fix crashes with lots of discovered LE devices

When loads of devices are discovered a config file which is too large
can be written out, which causes the BT daemon to crash on startup.

This limits the number of config entries for unpaired devices which
are initialized, and prevents a large number from being saved to the
filesystem.

Bug: 26071376
Change-Id: I4a74094f57a82b17f94e99a819974b8bc8082184

8 years agoAdd discovery state callback to adapter
Ajay Panicker [Thu, 10 Dec 2015 01:05:11 +0000 (17:05 -0800)]
Add discovery state callback to adapter

Change-Id: Icb3afacc5a23603762f2b0c42244dc408b245dcc

8 years agoDisable bdtool compilation
Andre Eisenbach [Thu, 10 Dec 2015 01:03:27 +0000 (17:03 -0800)]
Disable bdtool compilation

For re-factoring purposes, the dependencies are broken. Need to
re-evaluate tool usage and port to new bluetoothtbd HAL layer if
necessary.

Change-Id: I27b2ad3d78c67a12c67d8db9f506f94888bea70f

8 years agonet_test_bluetooth: adapter test refactor
Ajay Panicker [Mon, 7 Dec 2015 22:12:13 +0000 (14:12 -0800)]
net_test_bluetooth: adapter test refactor

Properly integrating net_test_bluetooth to utilize GUnit correctly.
Contains all the adapter tests and base class that all the other tests
utilize. Also removed all the old test code.

Bug: 25793348
Change-Id: Ie05d54e9d21f01e2d717bb79d187d7f0ff8a83f1

8 years agoosi: Remove error_fclose goto and redundant fflush.
Alain Vongsouvanh [Wed, 9 Dec 2015 16:57:38 +0000 (08:57 -0800)]
osi: Remove error_fclose goto and redundant fflush.

Change-Id: I327f9ce696bb68eb3b89b4a8b15dba189e027970

8 years agoFix the calculation of bta_sys_get_remaining_ticks
VenkatRaghavan V [Wed, 9 Dec 2015 11:47:13 +0000 (17:17 +0530)]
Fix the calculation of bta_sys_get_remaining_ticks

Previously, bta_sys_get_remaining_ticks() calculated the remaining
ticks for all the items in the hash map, which is incorrect.
Instead, we need to calculate the remaining ticks only for the queried
item.

Bug: 26110234

Change-Id: Ia867c1d0da15809a643b946f7d8b9143e3882935

8 years agoAdded visibility to the UIPC_Read() errors
Pavlin Radoslavov [Tue, 8 Dec 2015 01:47:08 +0000 (17:47 -0800)]
Added visibility to the UIPC_Read() errors

Changed some of the BTIF_TRACE_EVENT() log messages
to BTIF_TRACE_WARNING() so we can get better visibility into the
UIPC_Read() errors.

Also, removed UIPC_ReadBuf() and UIPC_SendBuf(), because they are
not implemented / used.

Change-Id: Iccc6a4d73dfe3c3e57f21c538891d7cb429f11ac

8 years agoFix net_test_hci unit tests
Pavlin Radoslavov [Mon, 7 Dec 2015 23:33:46 +0000 (23:33 +0000)]
Fix net_test_hci unit tests
am: c3caf784c7

* commit 'c3caf784c788af45fd6b657a09f4034b9d3387ba':
  Fix net_test_hci unit tests

8 years agoOnly initiate codec negotiation if feature is supported
Chenjie Luo [Mon, 7 Dec 2015 23:14:11 +0000 (23:14 +0000)]
Only initiate codec negotiation if feature is supported
am: 1cb11bb9af

* commit '1cb11bb9af8c72437eaf364bd422715015e4534b':
  Only initiate codec negotiation if feature is supported

8 years agoUpdate features pages after LE Host Support change
Frédéric Dalleau [Mon, 7 Dec 2015 23:14:05 +0000 (23:14 +0000)]
Update features pages after LE Host Support change
am: ebc367a5a8

* commit 'ebc367a5a8c90f70fd39096a2e658826d17e94a0':
  Update features pages after LE Host Support change

8 years agoFix p_info increment in A2D_ParsSbcInfo
Ian Coolidge [Fri, 4 Dec 2015 22:11:22 +0000 (14:11 -0800)]
Fix p_info increment in A2D_ParsSbcInfo

This is supposed to adjust position in the passed buffer,
not adjust a value of the buffer.

It fixes A2DP sink pairing by not corrupting the codec mask.

Also add const qualification to the input buffer.

Change-Id: Ic83ba73e0ea90897c131b4c1417cb976903862ac

8 years agoFix net_test_hci unit tests
Pavlin Radoslavov [Fri, 4 Dec 2015 01:11:55 +0000 (17:11 -0800)]
Fix net_test_hci unit tests

* Added new function API to hci_layer: hci_layer_cleanup_interface()
  It can be used to cleanup after hci_layer_get_interface()
  or hci_layer_get_test_interface()
* Fixed the unit tests inside HciLayerTest by removing usage of
  allocation_tracker_reset() and adding hci_layer_cleanup_interface() .
  The former was used as a hack to bypass the internal memory allocation
  of hci_layer_get_test_interface(). The latter is used to properly
  cleanup such allocation.

Bug: 26014740
Change-Id: I498b996a931c59dd3b4258f1a5741cfa6d302e42

8 years agoOnly initiate codec negotiation if feature is supported
Chenjie Luo [Fri, 20 Nov 2015 19:18:42 +0000 (11:18 -0800)]
Only initiate codec negotiation if feature is supported

Bug: 25634250
Change-Id: I97330c853f6cf90673b4ff28c72645f9d1c8ff9d

8 years agoUpdate features pages after LE Host Support change
Frédéric Dalleau [Tue, 18 Aug 2015 10:23:12 +0000 (12:23 +0200)]
Update features pages after LE Host Support change

After "Write LE Host Support" command is sent, the number of supported features
pages increases. Make sure we have the correct number of pages because it will
be read later.

Change-Id: I23d57b2cc9e773e14b2ce30ccfa624ba433b191c
Signed-off-by: Frédéric Dalleau <frederic.dalleau@linux.intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
8 years agoFix race condition during simultaneous SDP
Jakub Pawlowski [Fri, 4 Dec 2015 01:38:45 +0000 (01:38 +0000)]
Fix race condition during simultaneous SDP
am: 1b3ac36749

* commit '1b3ac367492750439ebecd393af1799242767ef3':
  Fix race condition during simultaneous SDP

8 years agoMerge changes I7f9b2ea0,Ibb1c1d4c,I64cef032
Scott James Remnant [Fri, 4 Dec 2015 01:38:42 +0000 (01:38 +0000)]
Merge changes I7f9b2ea0,Ibb1c1d4c,I64cef032
am: cc79505e54

* commit 'cc79505e542cab5d686f8dba298f6b0c224a8129':
  Clean up run_unit_tests wordiness
  Add iterations option to run_unit_tests
  Clean up run_unit_tests a little

8 years agoFix race condition during simultaneous SDP
Jakub Pawlowski [Wed, 2 Dec 2015 17:33:20 +0000 (09:33 -0800)]
Fix race condition during simultaneous SDP

Right now sdp_conn_id and p_sdp_db are stored in static global
bta_gattc_cb between call to bta_gattc_sdp_service_disc and
bta_gattc_sdp_callback. If multiple instances of SDP discovery
are running simultaneously, they override this field, and free
same memory multiple times. This patch fixes that by making sure
sdp_conn_id and p_sdp_db are unique for each SDP discovery.

Bug: 25801255
Change-Id: I8ec52229e906e6b8748db7504f77e1f4d7006fbe

8 years agoMerge changes I7f9b2ea0,Ibb1c1d4c,I64cef032
Scott James Remnant [Fri, 4 Dec 2015 01:33:02 +0000 (01:33 +0000)]
Merge changes I7f9b2ea0,Ibb1c1d4c,I64cef032

* changes:
  Clean up run_unit_tests wordiness
  Add iterations option to run_unit_tests
  Clean up run_unit_tests a little

8 years agoMerge changes I9333236a,Ie4e5992c
Scott James Remnant [Wed, 2 Dec 2015 23:53:02 +0000 (23:53 +0000)]
Merge changes I9333236a,Ie4e5992c
am: 668c69faaa

* commit '668c69faaa8e7b04ae77557a1cb5e615d3150c9f':
  Switch to osi_getbuf.
  A2DP SRC offload support

8 years agoSynchronize Bluetooth stack init and cleanup
Ajay Panicker [Wed, 2 Dec 2015 23:52:59 +0000 (23:52 +0000)]
Synchronize Bluetooth stack init and cleanup
am: c28849aa58

* commit 'c28849aa58c10a4e57d6cb7e5f6d876cba4f8d99':
  Synchronize Bluetooth stack init and cleanup

8 years agoMerge changes I9333236a,Ie4e5992c
Scott James Remnant [Wed, 2 Dec 2015 23:49:40 +0000 (23:49 +0000)]
Merge changes I9333236a,Ie4e5992c

* changes:
  Switch to osi_getbuf.
  A2DP SRC offload support

8 years agoSwitch to osi_getbuf.
Chris Elliott [Wed, 2 Dec 2015 02:03:23 +0000 (18:03 -0800)]
Switch to osi_getbuf.

Change-Id: I9333236a6ae7f880d45dbb40f68fb639775b49be
(cherry picked from commit 6f3844ceadaae752c0b3ce410cf5964d5c2baf94)

8 years agoA2DP SRC offload support
Abhijit Adsule [Tue, 19 May 2015 07:44:26 +0000 (02:44 -0500)]
A2DP SRC offload support

bluedroid changes to support A2DP SRC offload to BT FW.
add functionality to relay a2dp offload requests and responses
between AudioHAL & the BT vendor library.

Change-Id: Ie4e5992c48e95b0efb372a405e8537e4fd3ea071
Signed-off-by: Sridhar Vashist <svashist@motorola.com>
8 years agoSynchronize Bluetooth stack init and cleanup
Ajay Panicker [Wed, 2 Dec 2015 00:21:06 +0000 (16:21 -0800)]
Synchronize Bluetooth stack init and cleanup

Bug: 25972918
Change-Id: Ia4fb4d74f8340862233dc5073596f3082863c941

8 years agoCompile as 64-bit library; fix includes
Andre Eisenbach [Wed, 2 Dec 2015 21:26:05 +0000 (21:26 +0000)]
Compile as 64-bit library; fix includes
am: d3842ed786

* commit 'd3842ed786d7adf1de9f0f9b2cd0de18fa5576e2':
  Compile as 64-bit library; fix includes

8 years agoCompile as 64-bit library; fix includes
Andre Eisenbach [Tue, 13 Oct 2015 01:32:46 +0000 (18:32 -0700)]
Compile as 64-bit library; fix includes

Change-Id: Ie5305d588ff54a80f06be786264e66042ddcf022

8 years agoMerge "tests: don\'t use bt_os_callouts for wakelocks"
Marie Janssen [Wed, 2 Dec 2015 20:33:13 +0000 (20:33 +0000)]
Merge "tests: don\'t use bt_os_callouts for wakelocks"
am: c61db8d557

* commit 'c61db8d5570d78e7e03e430ec5151a55bb77bdee':
  tests: don't use bt_os_callouts for wakelocks

8 years agoMerge "tests: don't use bt_os_callouts for wakelocks"
Marie Janssen [Wed, 2 Dec 2015 20:27:26 +0000 (20:27 +0000)]
Merge "tests: don't use bt_os_callouts for wakelocks"

8 years agoRemove BTM_OOB_INCLUDED
Jakub Pawlowski [Wed, 2 Dec 2015 19:40:20 +0000 (19:40 +0000)]
Remove BTM_OOB_INCLUDED
am: 175da70b6d

* commit '175da70b6d60349dffdee3a9cd13182b293edf4c':
  Remove BTM_OOB_INCLUDED

8 years agotests: don't use bt_os_callouts for wakelocks
Marie Janssen [Mon, 16 Nov 2015 18:35:17 +0000 (10:35 -0800)]
tests: don't use bt_os_callouts for wakelocks

Introduces alarm_set_wake_lock_paths so wake lock paths can be changed
for testing, and adds AlarmTestHarness::WakeLockHeld to test whether a
wake lock is currently held.

Bug: 25387683
Change-Id: I9a41ae8266e252a3d436f8d41ea3f9e7ecb45cdc

8 years agoRemove BTM_OOB_INCLUDED
Jakub Pawlowski [Thu, 12 Nov 2015 23:00:58 +0000 (15:00 -0800)]
Remove BTM_OOB_INCLUDED

Bug: 22932952
Change-Id: I35dbcd1881a8bd627d1b1c6759761a356d07bcb2

8 years agoMark secure link as authenticated for LE
Andre Eisenbach [Tue, 1 Dec 2015 22:00:05 +0000 (22:00 +0000)]
Mark secure link as authenticated for LE
am: 13bb0897a9

* commit '13bb0897a951f267680268b800084302c071e4cc':
  Mark secure link as authenticated for LE

8 years agoMark secure link as authenticated for LE
Andre Eisenbach [Sat, 14 Nov 2015 00:48:53 +0000 (16:48 -0800)]
Mark secure link as authenticated for LE

Without this change, reading an authenticated GATT characteristic using
BR/EDR  would fail with an insufficient authentication error.

Change-Id: I02f44cdf90635b470b21e8aad8240993cb0e8e42

8 years agoFix a race condition in the HCI module start_up()
Pavlin Radoslavov [Tue, 1 Dec 2015 17:57:57 +0000 (17:57 +0000)]
Fix a race condition in the HCI module start_up()
am: c3e8824f8d

* commit 'c3e8824f8d5266ee5d33be18c690b8de8f0562aa':
  Fix a race condition in the HCI module start_up()

8 years agoFix a race condition in the HCI module start_up()
Pavlin Radoslavov [Tue, 1 Dec 2015 01:15:23 +0000 (17:15 -0800)]
Fix a race condition in the HCI module start_up()

* Fix a race condition when using the static startup_future
  inside hci_layer.c
  The future_new() allocation happens inside function start_up()
  and the allocated "startup_future" value is returned, so the caller can
  call future_await(future).
  However, if firmware_config_callback() is called on another thread
  BEFORE the "return startup_future;" statement is reached, then
  "startup_future" is reset to NULL. As a result, the caller
  will call future_await(NULL), and we have memory leak: startup_future
  is never freed.

* Fix other similar potential race conditions inside stack_manager.c
  where the static "hack_future" variable could be reassigned between
  the future_new() and future_await() calls.

Bug: 25766403
Change-Id: I0ef1165efba7412c190dfa2a7660189b28fa78a6

8 years agoAllow Bluetooth to build on systems with no LE support
Scott James Remnant [Mon, 30 Nov 2015 22:32:44 +0000 (22:32 +0000)]
Allow Bluetooth to build on systems with no LE support
am: dd339ab075

* commit 'dd339ab075d913334c84fe4c817c8ab09f5eda47':
  Allow Bluetooth to build on systems with no LE support

8 years agoAllow Bluetooth to build on systems with no LE support
Scott James Remnant [Thu, 19 Nov 2015 23:27:41 +0000 (15:27 -0800)]
Allow Bluetooth to build on systems with no LE support

Bug: 25387258
Change-Id: Ie82dae7a1a6807b398c067d4e1984a098793c589

8 years agoservice: Refactor Client/Instance naming
Arman Uguray [Mon, 30 Nov 2015 21:11:49 +0000 (21:11 +0000)]
service: Refactor Client/Instance naming
am: bb18c41ffa

* commit 'bb18c41ffa0370d4eb0c4a15904b114355606466':
  service: Refactor Client/Instance naming

8 years agoservice: Refactor Client/Instance naming
Arman Uguray [Thu, 12 Nov 2015 21:44:31 +0000 (13:44 -0800)]
service: Refactor Client/Instance naming

Refactored the internal interfaces so that data structures with
per-application instances such as GattClient, GattServer, and
LowEnergyClient, and all other related data structures use "instance"
to generically refer to these instances rather than "client", which
was the naming inherited from BTIF.

Bug: 25650633
Change-Id: I1bda387f5d8fdccebe5eae7f058d7f8defafe8cc

8 years agoAdd file write error checks to config_save
Amadeusz Slawinski [Mon, 30 Nov 2015 16:35:40 +0000 (16:35 +0000)]
Add file write error checks to config_save
am: fd2f03a2e0

* commit 'fd2f03a2e0ab304a2b67a5a3ecf2e4e73d58e6d9':
  Add file write error checks to config_save

8 years agoMerge "Set bits 4-6 to 0 in L2CAP fixed channel supported bit mask."
Andre Eisenbach [Mon, 30 Nov 2015 16:35:35 +0000 (16:35 +0000)]
Merge "Set bits 4-6 to 0 in L2CAP fixed channel supported bit mask."
am: 4f820ee6f7

* commit '4f820ee6f7a59fe1a686e69de77ec932ce8a2f3c':
  Set bits 4-6 to 0 in L2CAP fixed channel supported bit mask.

8 years agoAdd file write error checks to config_save
Amadeusz Slawinski [Tue, 3 Nov 2015 15:09:57 +0000 (16:09 +0100)]
Add file write error checks to config_save

It's better to leave old config file instead of
overwriting with broken one.

Fixes problem when disk is full and we can't write
more data to it.

Issue: KIONE-3099
Change-Id: Ifdb641ba7f3140655f9ec371e53b11a17484f27a

8 years agoMerge "Set bits 4-6 to 0 in L2CAP fixed channel supported bit mask."
Andre Eisenbach [Mon, 30 Nov 2015 16:33:20 +0000 (16:33 +0000)]
Merge "Set bits 4-6 to 0 in L2CAP fixed channel supported bit mask."

8 years agoAdd missing initialization of module OSI_MODULE
Pavlin Radoslavov [Wed, 25 Nov 2015 16:17:51 +0000 (16:17 +0000)]
Add missing initialization of module OSI_MODULE
am: 592afafb91

* commit '592afafb911cccc8aaa7d74c54f638e6bfb0a62d':
  Add missing initialization of module OSI_MODULE

8 years agoAdd missing initialization of module OSI_MODULE
Pavlin Radoslavov [Wed, 25 Nov 2015 08:06:23 +0000 (00:06 -0800)]
Add missing initialization of module OSI_MODULE

Also, fix a resource leak (memory + file descriptors)
inside function AVDT_WriteReqOpt().
The leak was exposed by the module OSI_MODULE initialization fix
when audio is playing.

Bug: 21743601
Change-Id: Ia220042b9060b0640ac0851f4f9132ddf2773264

8 years agoMemory overwrite due to HDP doesn\'t allocate enough buffer
Jacob Lee [Mon, 23 Nov 2015 20:45:42 +0000 (20:45 +0000)]
Memory overwrite due to HDP doesn\'t allocate enough buffer
am: 4d7575b601

* commit '4d7575b601cd3e0408312d103d0c10cf597c82ab':
  Memory overwrite due to HDP doesn't allocate enough buffer