OSDN Git Service

android-x86/system-bt.git
8 years agoFix crashes with lots of discovered LE devices am: 05419c8b96
Marie Janssen [Tue, 12 Jan 2016 18:53:06 +0000 (18:53 +0000)]
Fix crashes with lots of discovered LE devices am: 05419c8b96
am: 7a5fa57019

* commit '7a5fa57019c1a0b175adeaa76f7548f6c4a9df6f':
  Fix crashes with lots of discovered LE devices

8 years agoFix crashes with lots of discovered LE devices
Marie Janssen [Tue, 12 Jan 2016 18:47:46 +0000 (18:47 +0000)]
Fix crashes with lots of discovered LE devices
am: 05419c8b96

* commit '05419c8b96ff9cf61c257aec6ae0aeabcfcc2636':
  Fix crashes with lots of discovered LE devices

8 years agoDisable 3Mbps packets for AVDT ACL links
Sathya Kumar [Thu, 7 Jan 2016 23:26:05 +0000 (17:26 -0600)]
Disable 3Mbps packets for AVDT ACL links

Change-Id: I4b1b52ec8aeaf5eab0672231889e0ea6f23aa852

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 agoMerge "Fix crash in HFP client's +COPS parsing code." into cw-e-dev
Sharvil Nanavati [Tue, 5 Jan 2016 01:36:43 +0000 (01:36 +0000)]
Merge "Fix crash in HFP client's +COPS parsing code." into cw-e-dev

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 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
(cherry picked from commit d77f1999ecece56c1cbb333f4ddc26f0b5bac2c5)

8 years agoMerge "Fix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false" into cw...
Sharvil Nanavati [Fri, 18 Dec 2015 01:58:36 +0000 (01:58 +0000)]
Merge "Fix absolute volume reporting if AVRC_ADV_CTRL_INCLUDED is false" into cw-e-dev

8 years agoDO NOT MERGE ANYWHERE net_test_bluetooth: replace with gtest variant
Scott James Remnant [Wed, 11 Nov 2015 19:51:20 +0000 (11:51 -0800)]
DO NOT MERGE ANYWHERE net_test_bluetooth: replace with gtest variant

Bug: 25385380
Change-Id: Ia719363823d8d538caa6b42f076d5d6d737ae036

8 years agoMerge "DO NOT MERGE ANYWHERE Rename gtest_net_test_bluedroid to gtest_net_test_blueto...
Joshua Schwarz [Thu, 17 Dec 2015 22:47:38 +0000 (22:47 +0000)]
Merge "DO NOT MERGE ANYWHERE Rename gtest_net_test_bluedroid to gtest_net_test_bluetooth." into cw-e-dev

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 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 agoDO NOT MERGE ANYWHERE: osi: Remove error_fclose goto and redundant fflush.
Alain Vongsouvanh [Wed, 9 Dec 2015 16:57:38 +0000 (08:57 -0800)]
DO NOT MERGE ANYWHERE: osi: Remove error_fclose goto and redundant fflush.

Change-Id: I327f9ce696bb68eb3b89b4a8b15dba189e027970

8 years agoDO NOT MERGE ANYWHERE: Add file write error checks to config_save
Amadeusz Slawinski [Tue, 3 Nov 2015 15:09:57 +0000 (16:09 +0100)]
DO NOT MERGE ANYWHERE: 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.

(Change amended to use "old" style LOG_ERROR macro)

Issue: KIONE-3099
Change-Id: Ifdb641ba7f3140655f9ec371e53b11a17484f27a

8 years agoDO NOT MERGE ANYWHERE Rename gtest_net_test_bluedroid to gtest_net_test_bluetooth.
Joshua Schwarz [Mon, 30 Nov 2015 16:44:26 +0000 (08:44 -0800)]
DO NOT MERGE ANYWHERE Rename gtest_net_test_bluedroid to gtest_net_test_bluetooth.

Change-Id: I73105164c04701aade27638ffdc5c3281a2585a2

8 years agoMerge "Mark secure link as authenticated for LE" into cw-e-dev
Zach Johnson [Wed, 2 Dec 2015 18:20:03 +0000 (18:20 +0000)]
Merge "Mark secure link as authenticated for LE" into cw-e-dev

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 agoAlways send a SUSPEND_CFM event when suspended due to A2DP RECONFIGURE.
Sridhar Vashist [Fri, 7 Aug 2015 00:40:24 +0000 (19:40 -0500)]
Always send a SUSPEND_CFM event when suspended due to A2DP RECONFIGURE.

There appear to be race cases where the peer sends a START before
we reconfigure the stream. Avoid btif_av state from getting
mismatched by always sending out the SUSPEND_CFM during RECONFIGURE.

Change-Id: I2034cd111466f792233cedb60a3a0df11d055962
Signed-off-by: Sridhar Vashist <svashist@motorola.com>
8 years agoMake default SBC bitrate configurable by device.
Sridhar Vashist [Wed, 14 Oct 2015 22:47:02 +0000 (17:47 -0500)]
Make default SBC bitrate configurable by device.

Configurable default SBC bitrate so that audio quality can be maintained
for sampling rates other than 44.1kHz

Change-Id: Ia4197c0a500088cfa48a8ba821e9738a16c3fc6e
Signed-off-by: Sridhar Vashist <svashist@motorola.com>
8 years agoMerge "A2DP SRC offload support" into cw-e-dev
Chris Elliott [Tue, 1 Dec 2015 21:09:52 +0000 (21:09 +0000)]
Merge "A2DP SRC offload support" into cw-e-dev

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>
Conflicts:
audio_a2dp_hw/audio_a2dp_hw.h
bta/Android.mk
bta/av/bta_av_aact.c
btif/include/btif_media.h
btif/src/btif_av.c
btif/src/btif_media_task.c
hci/Android.mk
hci/src/vendor.c
include/bt_target.h
stack/include/l2c_api.h

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 agoMerge "Fix broken test caused by misordered callback arguments." into cw-e-dev
Sharvil Nanavati [Mon, 9 Nov 2015 17:11:12 +0000 (17:11 +0000)]
Merge "Fix broken test caused by misordered callback arguments." into cw-e-dev

8 years agoFix broken test caused by misordered callback arguments.
Sharvil Nanavati [Sat, 7 Nov 2015 10:12:16 +0000 (02:12 -0800)]
Fix broken test caused by misordered callback arguments.

Change-Id: I16976a2a680eab76af31090548c2efc53bebaa60

8 years agoAlways update remote address type during LE scan
Andre Eisenbach [Fri, 6 Nov 2015 00:59:44 +0000 (00:59 +0000)]
Always update remote address type during LE scan
am: 03d171170c

* commit '03d171170c7ad4e40454a9575cfd4919d2e1ef2f':
  Always update remote address type during LE scan

8 years agoAlways update remote address type during LE scan
Andre Eisenbach [Thu, 5 Nov 2015 23:38:36 +0000 (15:38 -0800)]
Always update remote address type during LE scan

This will ensure that devices which do not contain a device name in the
advertising record are stored with the correct address type to ensure
re-connection to the device succeeds.

Bug: 25499163
Change-Id: I85f18ce2de267844c5d5ed49beeb448b9b074d74

8 years agoMerge "Do not mask out secure connections (SC) bit for BT <4.2" into mnc-dr-dev
Andre Eisenbach [Thu, 5 Nov 2015 01:27:19 +0000 (01:27 +0000)]
Merge "Do not mask out secure connections (SC) bit for BT <4.2" into mnc-dr-dev
am: 15c1f685db

* commit '15c1f685db0453a3e20f81de94fca7040a52a39a':
  Do not mask out secure connections (SC) bit for BT <4.2

8 years agoFix bug in SDP 128-bit UUID lookup
Andre Eisenbach [Thu, 5 Nov 2015 01:27:14 +0000 (01:27 +0000)]
Fix bug in SDP 128-bit UUID lookup
am: 7312c6d913

* commit '7312c6d91376e533914eb2a108b65699ca54353a':
  Fix bug in SDP 128-bit UUID lookup

8 years agoMerge "Do not mask out secure connections (SC) bit for BT <4.2" into mnc-dr-dev
Andre Eisenbach [Wed, 4 Nov 2015 17:32:48 +0000 (17:32 +0000)]
Merge "Do not mask out secure connections (SC) bit for BT <4.2" into mnc-dr-dev

8 years agoFix bug in SDP 128-bit UUID lookup
Andre Eisenbach [Wed, 4 Nov 2015 16:28:30 +0000 (08:28 -0800)]
Fix bug in SDP 128-bit UUID lookup

Bug: 24344122
Change-Id: I7b7ed4459c4f377d97b608bfe2e0c13aac31680e

8 years agoDo not mask out secure connections (SC) bit for BT <4.2
Andre Eisenbach [Wed, 4 Nov 2015 16:20:22 +0000 (08:20 -0800)]
Do not mask out secure connections (SC) bit for BT <4.2

Bug: 25467621
Change-Id: Ifdb52295fa5b8c5a39524a722dc044227c735240

8 years agoSerialize remote version query over LE
Andre Eisenbach [Fri, 30 Oct 2015 02:18:32 +0000 (02:18 +0000)]
Serialize remote version query over LE
am: 864e7734f2

* commit '864e7734f21d7ebe3f3a6840d187a2696498e9f4':
  Serialize remote version query over LE

8 years agoSerialize remote version query over LE
Andre Eisenbach [Thu, 29 Oct 2015 22:48:06 +0000 (15:48 -0700)]
Serialize remote version query over LE

Some devices (ex. Nexus Player remote) do not take well to having the
remote version queried while a remote feature request is also sent and
subsequently fail encryption.

This patch serializes the query of the remote version and requires both
remote features and the remote version to be read before calling a
connection established.

Bug: 25357767
Change-Id: Ie70eea241b47b81778d8e0df47f3a8f376316932

8 years agoCheck remote LMP version before enabling secure connections
Andre Eisenbach [Tue, 27 Oct 2015 20:30:54 +0000 (20:30 +0000)]
Check remote LMP version before enabling secure connections
am: 4f7c4f6732

* commit '4f7c4f67320bbb35c85b478d2ac7aa29d732acca':
  Check remote LMP version before enabling secure connections

8 years agoCheck remote LMP version before enabling secure connections
Andre Eisenbach [Mon, 26 Oct 2015 20:49:17 +0000 (13:49 -0700)]
Check remote LMP version before enabling secure connections

Request remote version information for LE links when connecting and
ensure LMP version is >= 8 (Bluetooth 4.2) before setting the LinkKey
bits in the pairing request.

This is to ensure older remote devices do not get confused by the
additional bit(s) in the pairing request.

Bug: 25277879
Change-Id: I25424e541fa5244d8f522dffc62cdedc24f4f35b

8 years agoPrevent integer overflows during GATT signing
Ajay Panicker [Tue, 27 Oct 2015 19:07:55 +0000 (19:07 +0000)]
Prevent integer overflows during GATT signing
am: b335ee9496

* commit 'b335ee9496e671bf0ef0ab28a5990c9a024ac06b':
  Prevent integer overflows during GATT signing

8 years agoPrevent integer overflows during GATT signing
Ajay Panicker [Fri, 23 Oct 2015 23:49:11 +0000 (16:49 -0700)]
Prevent integer overflows during GATT signing

Bug: 17901099
Change-Id: Ib61113b19c9c9798b9ea992fad0ce997dcc2e2f8

8 years agoMerge "Raise alarm callback thread priority" into mnc-dr-dev
Andre Eisenbach [Fri, 23 Oct 2015 23:52:57 +0000 (23:52 +0000)]
Merge "Raise alarm callback thread priority" into mnc-dr-dev
am: 2c8802ab5f

* commit '2c8802ab5f4f73afe2a8b722d3b1bbd8e106fa24':
  Raise alarm callback thread priority

8 years agoReduce persistence on aquiring master role
Mattias Agren [Fri, 23 Oct 2015 23:52:49 +0000 (23:52 +0000)]
Reduce persistence on aquiring master role
am: 59d9673187

* commit '59d9673187a50c259b42e5a71482304ab850a809':
  Reduce persistence on aquiring master role

8 years agoMerge "Raise alarm callback thread priority" into mnc-dr-dev
Andre Eisenbach [Fri, 23 Oct 2015 23:51:19 +0000 (23:51 +0000)]
Merge "Raise alarm callback thread priority" into mnc-dr-dev

8 years agoReduce persistence on aquiring master role
Mattias Agren [Wed, 14 Oct 2015 15:05:58 +0000 (17:05 +0200)]
Reduce persistence on aquiring master role

Whenever a device has more than 1 ACL link active and transferring
data on one of its links via PAN, HH or JV (RFCOMM) the sys busy/idle
state toggles frequently. To avoid triggering role switches for each
of these events we filter this out and let the other SYS events handle
it in combination with other role policy management code. Ideally we
should revert the toggling to properly reflect the busy/idle state of
each profile but to limit risk of side effects at this stage we will
make this intermittent change.

This also affects audio streaming in certain cases.

Bug: 2457095925129209
Change-Id: I141e17ee069c82624e153fd8de5db90ae93724b9

8 years agoRaise alarm callback thread priority
Andre Eisenbach [Fri, 23 Oct 2015 17:40:36 +0000 (10:40 -0700)]
Raise alarm callback thread priority

Since alarms [/callbacks] are used in the critical audio path, raising
the thread priority is required to ensure timely encoding/transmission
of audio packets and avoiding thread pre-emption.

This patch indiscriminatly raises the (single) callback thread priority,
affecting all alarm callbacks. In the future, thread priotiry should be
adjusted based on the alarms pending in the queue.

Bug: 24570959
Change-Id: I64928fd7325f1d6f76815a185dbccf1e01ae30d2

8 years agoFix 128-bit UUID byte order for GATT-over-BR/EDR
Andre Eisenbach [Wed, 21 Oct 2015 02:00:07 +0000 (02:00 +0000)]
Fix 128-bit UUID byte order for GATT-over-BR/EDR
am: deb1c7c5cf

* commit 'deb1c7c5cfacba8ec2d896f6bb120bdc81314d9a':
  Fix 128-bit UUID byte order for GATT-over-BR/EDR

8 years agoFix 128-bit UUID byte order for GATT-over-BR/EDR
Andre Eisenbach [Wed, 21 Oct 2015 01:03:30 +0000 (18:03 -0700)]
Fix 128-bit UUID byte order for GATT-over-BR/EDR

128-bit UUIDs for GATT services discovered using SDP are byte-ordered
incorrectly. This patch fixes both the SDP discovery as well as the SDP
record creation code.

Bug: 24344122
Change-Id: Iee4bf33dcbbc5ee0f2380b48330107232bd0401b

8 years agoMerge "Workaround for H4 HCI stream corruption during LE scans" into mnc-dr-dev
Andre Eisenbach [Wed, 21 Oct 2015 01:37:00 +0000 (01:37 +0000)]
Merge "Workaround for H4 HCI stream corruption during LE scans" into mnc-dr-dev
am: 78870e0f38

* commit '78870e0f38658e389e22dfba5da3f239f01966d7':
  Workaround for H4 HCI stream corruption during LE scans

8 years agoMerge "Workaround for H4 HCI stream corruption during LE scans" into mnc-dr-dev
Andre Eisenbach [Wed, 21 Oct 2015 01:33:07 +0000 (01:33 +0000)]
Merge "Workaround for H4 HCI stream corruption during LE scans" into mnc-dr-dev

8 years agoRemove absolute volume control whitelist
Andre Eisenbach [Wed, 21 Oct 2015 01:17:19 +0000 (01:17 +0000)]
Remove absolute volume control whitelist
am: 8289925079

* commit '8289925079c40ec91fa99d0ea6817f796a66681a':
  Remove absolute volume control whitelist

8 years agoWorkaround for H4 HCI stream corruption during LE scans
Andre Eisenbach [Fri, 11 Sep 2015 04:41:39 +0000 (21:41 -0700)]
Workaround for H4 HCI stream corruption during LE scans

Sometimes, during result-heavy LE scans, the UART byte stream can become
corrupted, leading to assertions caused by mis-interpreting the bytes
following the corruption.

This workaround looks for tell-tale signs of a BLE event and attempts to
skip the correct amount of bytes in the stream to re-synchronize onto a
packet boundary.

Bug: 23934838
Change-Id: Ifadaecf8077cb1defc7134c59c97302fca660f81

8 years agoRemove absolute volume control whitelist
Andre Eisenbach [Mon, 19 Oct 2015 23:06:20 +0000 (16:06 -0700)]
Remove absolute volume control whitelist

Remove the absolute volume control whitelist to enable absolute volume
control for all compatible devices.

Bug: 25081918
Change-Id: Iab0e4b4c4fd3dac0fefdf62ec80419dd64b56c0c

8 years agoam 852bf498: Add Flic smart button to interop database
Andre Eisenbach [Sun, 11 Oct 2015 13:43:14 +0000 (13:43 +0000)]
am 852bf498: Add Flic smart button to interop database

* commit '852bf4980ea87a916e5f3037c9b897fd84c2417b':
  Add Flic smart button to interop database

8 years agoAdd Flic smart button to interop database
Andre Eisenbach [Mon, 5 Oct 2015 20:25:14 +0000 (13:25 -0700)]
Add Flic smart button to interop database

Bug: 24737963
Change-Id: If3b59437439305b490c5fc260a7080cee04f09c5

8 years agoam 6c25b3c0: Raise BTU and HCI thread priorities
Andre Eisenbach [Wed, 7 Oct 2015 20:25:36 +0000 (20:25 +0000)]
am 6c25b3c0: Raise BTU and HCI thread priorities

* commit '6c25b3c02c863cbb047e4cf8b4ec88d8335dac30':
  Raise BTU and HCI thread priorities

8 years agoRaise BTU and HCI thread priorities
Andre Eisenbach [Wed, 7 Oct 2015 18:16:37 +0000 (11:16 -0700)]
Raise BTU and HCI thread priorities

The audio sub-system and audio related tasks run at elevated thread
priorities in order to ensure timely handling of audio packets. This
patch raises the thread priority of lower layer Bluetooth tasks involved
in delivering audio packets to avoid thread pre-emption and subsequent
audio skipping.

Bug: 24570959
Change-Id: I5e19ee4590207df753f7b8bfc22174959722ec2d

8 years agoam 60563860: am 74dad515: Disable opening network debug ports for security reasons
Pavlin Radoslavov [Fri, 25 Sep 2015 22:22:04 +0000 (22:22 +0000)]
am 60563860: am 74dad515: Disable opening network debug ports for security reasons

* commit '60563860e791d31c93daa404247272b3a0cb4e14':
  Disable opening network debug ports for security reasons

8 years agoam 74dad515: Disable opening network debug ports for security reasons
Pavlin Radoslavov [Fri, 25 Sep 2015 22:13:37 +0000 (22:13 +0000)]
am 74dad515: Disable opening network debug ports for security reasons

* commit '74dad51510f7d7b05c6617ef88168bf0bbdf3fcd':
  Disable opening network debug ports for security reasons

8 years agoam 4cac544d: Disable opening network debug ports for security reasons
Pavlin Radoslavov [Fri, 25 Sep 2015 21:13:56 +0000 (21:13 +0000)]
am 4cac544d: Disable opening network debug ports for security reasons

* commit '4cac544da367d7458129631ddef6db4e3312cef7':
  Disable opening network debug ports for security reasons

8 years agoDisable opening network debug ports for security reasons
Pavlin Radoslavov [Thu, 24 Sep 2015 20:34:35 +0000 (13:34 -0700)]
Disable opening network debug ports for security reasons

By default, we open up to three TCP ports that are used
for debugging purpose:

 * TCP port 8872 - used for forwarding btsnoop logs at real time
   Note: the port is open only if "Bluetooth HCI snoop log" is enabled
   in the Developer options
 * TCP port 8873 - used for HCI debugging
 * TCP port 8879 - used for debugging the Bluetooth counters

Those ports are disabled by default.
To enable, the following #define should be added at the top of the
corresponding file(s): btcore/src/counter.c hci/src/btsnoop_net.c
hci/src/hci_inject.c

   #define BT_NET_DEBUG TRUE

Bug: 24371736

Change-Id: I5cb43af1a5d29c331eb5ef61a24dccbe95df6f40

8 years agoam bb2a4fad: Fix PAN crash due to fd mismatch
Nitin Shivpure [Fri, 25 Sep 2015 00:02:09 +0000 (00:02 +0000)]
am bb2a4fad: Fix PAN crash due to fd mismatch

* commit 'bb2a4faddd9a7f03d13d37a23eb0da1ef52f9088':
  Fix PAN crash due to fd mismatch

8 years agoDisable opening network debug ports for security reasons
Pavlin Radoslavov [Thu, 24 Sep 2015 20:34:35 +0000 (13:34 -0700)]
Disable opening network debug ports for security reasons

By default, we open up to three TCP ports that are used
for debugging purpose:

 * TCP port 8872 - used for forwarding btsnoop logs at real time
   Note: the port is open only if "Bluetooth HCI snoop log" is enabled
   in the Developer options
 * TCP port 8873 - used for HCI debugging
 * TCP port 8879 - used for debugging the Bluetooth counters

Those ports are disabled by default.
To enable, the following #define should be added at the top of the
corresponding file(s): btcore/src/counter.c hci/src/btsnoop_net.c
hci/src/hci_inject.c

   #define BT_NET_DEBUG TRUE

Bug: 24371736

Change-Id: I5cb43af1a5d29c331eb5ef61a24dccbe95df6f40

8 years agoFix PAN crash due to fd mismatch
Nitin Shivpure [Sun, 6 Sep 2015 09:34:01 +0000 (15:04 +0530)]
Fix PAN crash due to fd mismatch

A case, where tap read thread is always exist, Sometimes
data packets get recieved on older fd, which is not available.
which is causing assert due to fd mismatch in race condition.
when next pan connection is immediately available. If last pan
connection gets disconnected, then tap_read_thread should be
destroyed in btif context to fix this issue.

Bug: 24093456
Change-Id: Ic1053200a7be4c2091d6c394634831ca3fbd61df

8 years agoam 28209191: Merge "DO NOT MERGE - A2DP audio HAL: implement out_get_presentation_pos...
Andy Hung [Tue, 22 Sep 2015 18:31:20 +0000 (18:31 +0000)]
am 28209191: Merge "DO NOT MERGE - A2DP audio HAL: implement out_get_presentation_position()" into mnc-dr-dev

* commit '282091913b4ee3b26a2f79a630ecdca4e8ca89f6':
  DO NOT MERGE - A2DP audio HAL: implement out_get_presentation_position()

8 years agoMerge "DO NOT MERGE - A2DP audio HAL: implement out_get_presentation_position()"...
Andy Hung [Tue, 22 Sep 2015 18:26:32 +0000 (18:26 +0000)]
Merge "DO NOT MERGE - A2DP audio HAL: implement out_get_presentation_position()" into mnc-dr-dev

8 years agoam 81d4127c: Merge "Check BR device count before initiating role switch" into mnc...
Pankaj Kanwar [Tue, 22 Sep 2015 16:43:14 +0000 (16:43 +0000)]
am 81d4127c: Merge "Check BR device count before initiating role switch" into mnc-dr-dev

* commit '81d4127c5bd2c0bd2ac50a1a7a9f24ad8148434d':
  Check BR device count before initiating role switch

8 years agoMerge "Check BR device count before initiating role switch" into mnc-dr-dev
Pankaj Kanwar [Tue, 22 Sep 2015 16:37:36 +0000 (16:37 +0000)]
Merge "Check BR device count before initiating role switch" into mnc-dr-dev

8 years agoam e31d4171: Fix PAN and AV role switch war
tturney [Mon, 21 Sep 2015 21:51:19 +0000 (21:51 +0000)]
am e31d4171: Fix PAN and AV role switch war

* commit 'e31d417196a377d6718cbccd54794097e095d0b1':
  Fix PAN and AV role switch war

8 years agoFix PAN and AV role switch war
tturney [Mon, 21 Sep 2015 17:49:09 +0000 (10:49 -0700)]
Fix PAN and AV role switch war

Bug: 23740164
Change-Id: Ib26a64b624c711443201adc4fde6b041ecb0dde1

8 years agoam 1cf812f6: Ensure thread priority is raised for media task / UIPC
Andre Eisenbach [Sat, 19 Sep 2015 16:07:40 +0000 (16:07 +0000)]
am 1cf812f6: Ensure thread priority is raised for media task / UIPC

* commit '1cf812f61823c981406f18b2577f43b69e80253d':
  Ensure thread priority is raised for media task / UIPC

8 years agoam ef7d8cb8: Change UHID socket to be non-blocking
Andre Eisenbach [Sat, 19 Sep 2015 16:07:40 +0000 (16:07 +0000)]
am ef7d8cb8: Change UHID socket to be non-blocking

* commit 'ef7d8cb8b012e77c9b0c596c5ad4b0ffb7e5dde9':
  Change UHID socket to be non-blocking

8 years agoEnsure thread priority is raised for media task / UIPC
Andre Eisenbach [Sat, 19 Sep 2015 03:13:53 +0000 (20:13 -0700)]
Ensure thread priority is raised for media task / UIPC

Bug: 23978964
Change-Id: I36b6d05bb82eb0283eed3b465038d65890c4c245

8 years agoChange UHID socket to be non-blocking
Andre Eisenbach [Thu, 17 Sep 2015 22:16:20 +0000 (15:16 -0700)]
Change UHID socket to be non-blocking

On some platforms, the logs indicate that the BTU task is stalled by
UHID driver when writing the HID descriptor to the kernel. This patch
converts the UHID socket to non-blocking to avoid stalling the main
BTU task.

Bug: 23978964
Change-Id: I5a7a3e106fb2c967d68f077faedcd4fe62bbd912

8 years agoCheck BR device count before initiating role switch
Nitin Shivpure [Wed, 12 Aug 2015 12:45:11 +0000 (18:15 +0530)]
Check BR device count before initiating role switch

A case where DUT is acting as PANU device on BR/EDR link & also
acting as central on LE link. As LE link & PANU link need not to
be master & it's not a scatter-net scenario, because there is only
a BR link. So checking for BR device count before initiating role
switch to avoid continuous loop of role switches.

Cherry-picked from: https://partner-android-review.googlesource.com/#/c/376058/

Change-Id: I70e4041a71ba965f1f9e25729c3cfd20ae03d6b4
Bug: 23290136

8 years agoDO NOT MERGE - A2DP audio HAL: implement out_get_presentation_position()
Eric Laurent [Tue, 26 May 2015 22:50:29 +0000 (15:50 -0700)]
DO NOT MERGE - A2DP audio HAL: implement out_get_presentation_position()

And complete implementation of out_get_render_position()

Bug: 21199150
Bug: 24042067
Change-Id: I95038ad68433e401b096a0159282a2ae372570e1

8 years agoDO NOT MERGE Use POSIX timer API for wake alarms instead of OSI callouts.
Sharvil Nanavati [Mon, 7 Sep 2015 08:05:19 +0000 (01:05 -0700)]
DO NOT MERGE Use POSIX timer API for wake alarms instead of OSI callouts.

This change increases RFCOMM throughput by a little over 50%. We
were paying a pretty major cost in setting up / tearing down wake
timers by going through JNI and Binder over to AlarmService.

There are a few gotchas with this implementation, particularly
because the Linux kernel implementation of wake timers is somewhat
buggy.

Bug: 23375670
Change-Id: I27558f439e57696d912b968f56a48e5e4098860b

8 years agoam 03ca1894: Merge "Allow BT inquiry while discovery is in progress." into mnc-dr-dev
Andre Eisenbach [Wed, 9 Sep 2015 18:15:41 +0000 (18:15 +0000)]
am 03ca1894: Merge "Allow BT inquiry while discovery is in progress." into mnc-dr-dev

* commit '03ca189412e3f8ec7c5963339af172c9276b3b9b':
  Allow BT inquiry while discovery is in progress.

8 years agoMerge "Allow BT inquiry while discovery is in progress." into mnc-dr-dev
Andre Eisenbach [Wed, 9 Sep 2015 18:10:57 +0000 (18:10 +0000)]
Merge "Allow BT inquiry while discovery is in progress." into mnc-dr-dev

8 years agoam 313a933e: Merge "Eliminate recursive calling when handling GATT related errors...
Andre Eisenbach [Wed, 9 Sep 2015 18:04:33 +0000 (18:04 +0000)]
am 313a933e: Merge "Eliminate recursive calling when handling GATT related errors" into mnc-dr-dev

* commit '313a933ef3f55ad5121ff70851718b812cf05135':
  Eliminate recursive calling when handling GATT related errors

8 years agoMerge "Eliminate recursive calling when handling GATT related errors" into mnc-dr-dev
Andre Eisenbach [Wed, 9 Sep 2015 17:55:55 +0000 (17:55 +0000)]
Merge "Eliminate recursive calling when handling GATT related errors" into mnc-dr-dev

8 years agoAllow BT inquiry while discovery is in progress.
tturney [Tue, 8 Sep 2015 21:42:09 +0000 (14:42 -0700)]
Allow BT inquiry while discovery is in progress.

BT Inquiry is disallowed when service discovery
is in progress. Innitially when GATT discovery
is in progress (crosskey pairing), it resulted
in inquiry requests being rejected. During an
insecure connection like OPP, bonding link key
is not stored. In an earlier patch (b820aec7),
BR/EDR discovery was bypassed if the bonding was
temporary. However, this was not done for LE.
Applying the same logic to LE, resolved the
inquiry issue reported in this bug.

Bug: 23468169
Change-Id: I6111c80a420aeb0bc36a0393eb215c112512d251

8 years agoEliminate recursive calling when handling GATT related errors
Pavlin Radoslavov [Sat, 5 Sep 2015 00:55:09 +0000 (17:55 -0700)]
Eliminate recursive calling when handling GATT related errors

If there are errors when processing GATT related events (e.g.,
configuring the MTU), don't use recursive calls into
bta_gattc_sm_execute(), because it breaks the free-ing of some
of the memory.

Bug: 23756301
Change-Id: I3c685170e868ffbf4e488d2bb5a31904e3f7b39d

8 years agoam 72abbbea: Fix issue where bluesleep idle timer is not started
wang ping [Mon, 7 Sep 2015 23:56:39 +0000 (23:56 +0000)]
am 72abbbea: Fix issue where bluesleep idle timer is not started

* commit '72abbbeaa9220cf30c1d9f21aadd52ba3dd6ea4e':
  Fix issue where bluesleep idle timer is not started

8 years agoFix issue where bluesleep idle timer is not started
wang ping [Sat, 5 Sep 2015 17:48:09 +0000 (10:48 -0700)]
Fix issue where bluesleep idle timer is not started

Sometimes allow_device_sleep() is called before wake_assert, this result in transmit_done
does not start idle timer. This is because the "wake_state" does not match while
allow_device_sleep() is called before wake_assert() is called. So start idle timer
anyway when transmit_done is called.

Bug: 23754156
Change-Id: I5437aea0abc4b7f5cf847701e2d0a889c6823fcb

8 years agoMerge "DO NOT MERGE Directly acquire wake locks from the Bluetooth stack." into cw...
Sharvil Nanavati [Thu, 3 Sep 2015 21:03:00 +0000 (21:03 +0000)]
Merge "DO NOT MERGE Directly acquire wake locks from the Bluetooth stack." into cw-e-dev

8 years agoMerge "Implementation of net_test_bluedroid as a GTest." into cw-e-dev
Joshua Schwarz [Wed, 2 Sep 2015 07:26:59 +0000 (07:26 +0000)]
Merge "Implementation of net_test_bluedroid as a GTest." into cw-e-dev

8 years agoam 65d1c84f: Fix btwrite timer timeout for Angler (2/2)
tturney [Wed, 2 Sep 2015 01:12:48 +0000 (01:12 +0000)]
am 65d1c84f: Fix btwrite timer timeout for Angler (2/2)

* commit '65d1c84f5b4c2d452b4927ab7f8670a4951db3ce':
  Fix btwrite timer timeout for Angler (2/2)

8 years agoDO NOT MERGE Directly acquire wake locks from the Bluetooth stack.
Sharvil Nanavati [Tue, 1 Sep 2015 06:50:05 +0000 (23:50 -0700)]
DO NOT MERGE Directly acquire wake locks from the Bluetooth stack.

The wake lock callouts go through JNI and then across Binder to
PowerManager. As a result, the cost of each callout is very high.
There are cases where the stack is acquiring and releasing the wake
lock tens of times per second. When that happens, the CPU load on
some devices can reach 100% and the RFCOMM throughput can drop by
50% or more.

This change reduces the cost of acqiring / releasing a wake lock.
Instead of JNI + Binder + PowerManager overhead, we simply write to
the /sys/power/wake_lock and /sys/power/wake_unlock nodes. The cost
of each is a single syscall.

Bug: 23375670
Change-Id: I760a86b557b02c3d70be7a902c943b7ee2f515b1

8 years agoFix btwrite timer timeout for Angler (2/2)
tturney [Mon, 31 Aug 2015 22:16:59 +0000 (15:16 -0700)]
Fix btwrite timer timeout for Angler (2/2)

When calculating the appropriate LPM's idle timeout,
the local chip name was NULL. This is fixed by calculating
LMP's idle timeout when the chip is enabling.

Bug: 23248798
Change-Id: I8ee2b28fb4363359e035e242fdcff8a736ee448c

8 years agoImplementation of net_test_bluedroid as a GTest.
Joshua Schwarz [Thu, 27 Aug 2015 21:15:26 +0000 (14:15 -0700)]
Implementation of net_test_bluedroid as a GTest.

Change-Id: If9fc9a26fe58858a107b8ad6ac9f1e757ba07f90

8 years agoam 0908eac5: am 24923939: LE Multi-Advertising State Change Sub-event Wrong Variable...
Jacob Lee [Sat, 29 Aug 2015 00:12:39 +0000 (00:12 +0000)]
am 0908eac5: am 24923939: LE Multi-Advertising State Change Sub-event Wrong Variable Type

* commit '0908eac54232fd876e355baf50c74edd91f2b89a':
  LE Multi-Advertising State Change Sub-event Wrong Variable Type

8 years agoam 24923939: LE Multi-Advertising State Change Sub-event Wrong Variable Type
Jacob Lee [Sat, 29 Aug 2015 00:04:35 +0000 (00:04 +0000)]
am 24923939: LE Multi-Advertising State Change Sub-event Wrong Variable Type

* commit '249239391c732c25c5edb62636cfe188131af3a4':
  LE Multi-Advertising State Change Sub-event Wrong Variable Type

8 years agoLE Multi-Advertising State Change Sub-event Wrong Variable Type
Jacob Lee [Wed, 26 Aug 2015 06:43:59 +0000 (14:43 +0800)]
LE Multi-Advertising State Change Sub-event Wrong Variable Type

Wrong connection handle type in multi-adv event parsing,
causing random address (confirm value) mismatch and pairing failure.

Bug id: 23201007

Change-Id: I13ce231360937e711f61eb0777805b07bcde7074

8 years agoam ed9a5c76: am dcfafe9a: Fix incorrect SetConnScanParam function mapping
Sunny Kapdi [Fri, 28 Aug 2015 21:26:02 +0000 (21:26 +0000)]
am ed9a5c76: am dcfafe9a: Fix incorrect SetConnScanParam function mapping

* commit 'ed9a5c76f2807676155970535138ca51c072aab1':
  Fix incorrect SetConnScanParam function mapping

8 years agoam dcfafe9a: Fix incorrect SetConnScanParam function mapping
Sunny Kapdi [Fri, 28 Aug 2015 21:16:26 +0000 (21:16 +0000)]
am dcfafe9a: Fix incorrect SetConnScanParam function mapping

* commit 'dcfafe9af755c06bc64fd7ad072233ceb7a1abc6':
  Fix incorrect SetConnScanParam function mapping

8 years agoFix incorrect SetConnScanParam function mapping
Sunny Kapdi [Thu, 27 Aug 2015 07:37:31 +0000 (00:37 -0700)]
Fix incorrect SetConnScanParam function mapping

BTA_DM_API_BLE_CONN_SCAN_PARAM_EVT is defined before
BTA_DM_API_BLE_SCAN_PARAM_EVT in the enum but the corresponding
entries in bta_dm_action were inverted. This resulted in incorrect
invocation of set_conn_scan_params while trying to set parameters
for scanning. The call was hence failing here and was not
resulting in setting of the new scan parameters in the Controller
irrespective of the scan mode selected from the App. This would
essentially result in the breakage of ScanSettings.SCAN_MODE_<xx>
Android SDK APIs.

Bug: 23602042
Change-Id: I17e1b14a32250e3ccb7631a67690ec2e0a6bc321

8 years agoam ee8592f4: am b7460434: Fix memory corruption of BLE whitelist hashmap
Nitin Arora [Tue, 25 Aug 2015 23:22:48 +0000 (23:22 +0000)]
am ee8592f4: am b7460434: Fix memory corruption of BLE whitelist hashmap

* commit 'ee8592f44738ca438df9256e3e057250d014c740':
  Fix memory corruption of BLE whitelist hashmap

8 years agoam b7460434: Fix memory corruption of BLE whitelist hashmap
Nitin Arora [Tue, 25 Aug 2015 23:18:06 +0000 (23:18 +0000)]
am b7460434: Fix memory corruption of BLE whitelist hashmap

* commit 'b74604341c60628dc7bc8e8e69e3ce2acb4a5373':
  Fix memory corruption of BLE whitelist hashmap

8 years agoFix memory corruption of BLE whitelist hashmap
Nitin Arora [Fri, 21 Aug 2015 19:34:14 +0000 (12:34 -0700)]
Fix memory corruption of BLE whitelist hashmap

When adding devices to the whitelist for LE background connections, a
local variable is used as the hashmap key, preventing any successful
lookups going forward. Thus the device will repeatedly add the same
device to the whitelist and preventing successful connections going
forward.

Bug: 23423602
Change-Id: I3d2590c0a1dd66c6e1864ea53f875a713660b645

8 years agoam 5c572ffb: am aa41fec0: Check the return value when reading HCI type byte
Pavlin Radoslavov [Mon, 24 Aug 2015 05:05:15 +0000 (05:05 +0000)]
am 5c572ffb: am aa41fec0: Check the return value when reading HCI type byte

* commit '5c572ffb5b61e5c7f7fe1080bdb27098c9bc5511':
  Check the return value when reading HCI type byte

8 years agoam aa41fec0: Check the return value when reading HCI type byte
Pavlin Radoslavov [Mon, 24 Aug 2015 05:00:20 +0000 (05:00 +0000)]
am aa41fec0: Check the return value when reading HCI type byte

* commit 'aa41fec0e36653e828bfc2a54fca11447ed56cc5':
  Check the return value when reading HCI type byte

8 years agoCheck the return value when reading HCI type byte
Pavlin Radoslavov [Thu, 20 Aug 2015 23:53:16 +0000 (16:53 -0700)]
Check the return value when reading HCI type byte

Add missing return value check when reading the HCI type byte.
This check is needed as a safeguard. For example, function
event_uart_has_bytes() could be called (indirectly)
within the run_reactor() loop not only when there are bytes to read,
but also if there is an error (e.g., EPOLLHUP | EPOLLRDHUP | EPOLLERR).

Bug: 23105107
Change-Id: Ic3b6e4d656406949e384c8106b0c607f7c221759