OSDN Git Service

android-x86/system-bt.git
8 years agoMerge "Serialize remote version query over LE"
Andre Eisenbach [Fri, 30 Oct 2015 17:27:42 +0000 (17:27 +0000)]
Merge "Serialize remote version query over LE"
am: a0a3dacd68

* commit 'a0a3dacd682cc3e8c9ee4b5a196e06aeada6cc49':
  Serialize remote version query over LE

8 years agoMerge "Serialize remote version query over LE"
Andre Eisenbach [Fri, 30 Oct 2015 17:23:08 +0000 (17:23 +0000)]
Merge "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 agoRemove unused HCI_PROTO_REVISION
Andre Eisenbach [Fri, 30 Oct 2015 16:16:34 +0000 (16:16 +0000)]
Remove unused HCI_PROTO_REVISION
am: 879aeec727

* commit '879aeec72706fc7bae66277350ae9a49648a73e7':
  Remove unused HCI_PROTO_REVISION

8 years agoRemove unused HCI_PROTO_REVISION
Andre Eisenbach [Tue, 27 Oct 2015 20:26:19 +0000 (13:26 -0700)]
Remove unused HCI_PROTO_REVISION

Change-Id: Icec52e4e63b14f2fe7a61cf5077e40c5e8baeff5

8 years agoEnable kernel wakelocks and timers
Marie Janssen [Tue, 27 Oct 2015 23:12:28 +0000 (23:12 +0000)]
Enable kernel wakelocks and timers
am: 28bf007f71

* commit '28bf007f7103ccd36d5fa2f87837947a27cc698d':
  Enable kernel wakelocks and timers

8 years agoEnable kernel wakelocks and timers
Marie Janssen [Mon, 21 Sep 2015 17:49:08 +0000 (10:49 -0700)]
Enable kernel wakelocks and timers

Use kernel wakelocks now that they are available to us, and use thread
timers instead to eliminate bt_os_callouts usage.

Bug: 23390297
Change-Id: Ic9428457807eab5125d35eae3df6cd2a05a2a659

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: 27e239dbd3

* commit '27e239dbd31dd9ee7fab5fb8558fbd2292cf7e5d':
  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 agoWorkaround for H4 HCI stream corruption during LE scans
Andre Eisenbach [Wed, 21 Oct 2015 20:54:58 +0000 (20:54 +0000)]
Workaround for H4 HCI stream corruption during LE scans
am: bdd19e0873

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

8 years agoRemove absolute volume control whitelist
Andre Eisenbach [Wed, 21 Oct 2015 20:54:55 +0000 (20:54 +0000)]
Remove absolute volume control whitelist
am: 58593a0273

* commit '58593a02736ff9ac9bdccd0e3186602f17452cdf':
  Remove absolute volume control whitelist

8 years agoFix 128-bit UUID byte order for GATT-over-BR/EDR
Andre Eisenbach [Wed, 21 Oct 2015 20:54:51 +0000 (20:54 +0000)]
Fix 128-bit UUID byte order for GATT-over-BR/EDR
am: 61968383a6

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

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 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 agodoc: add supported features document
Scott James Remnant [Tue, 20 Oct 2015 23:11:48 +0000 (23:11 +0000)]
doc: add supported features document
am: ac43e88a0a

* commit 'ac43e88a0aa375e712683e2b218d876c616e6f5e':
  doc: add supported features document

8 years agodoc: add supported features document
Scott James Remnant [Tue, 20 Oct 2015 22:54:06 +0000 (15:54 -0700)]
doc: add supported features document

Summarize the versions and roles of each profile/protocol listed
in our Qualified Design, and provide a link to the QDID.

Change-Id: I8cfbbd466c684cb95de5433b3d7fa0f1fd567689

8 years agoDO NOT MERGE Revert "am b3ca1b37: resolved conflicts for merge of a905eb62 to mnc...
Sharvil Nanavati [Fri, 4 Sep 2015 09:06:45 +0000 (02:06 -0700)]
DO NOT MERGE Revert "am b3ca1b37: resolved conflicts for merge of a905eb62 to mnc-dr-dev-plus-aosp"

This reverts commit 2f86b2fc188edb0ba50483e624bd982a594c6633, reversing
changes made to 15c3ad9c08b864f63ed2581a10a65107fbe04752.

Change-Id: I43500eb0513180db8ba5b4ecc9f2dec934173c7f

8 years agoDO NOT MERGE fix am error for 1dffda3b
Scott James Remnant [Tue, 20 Oct 2015 01:46:48 +0000 (18:46 -0700)]
DO NOT MERGE fix am error for 1dffda3b

Change-Id: Ic11a786ccf99ae50178b906f2163500c3af55612

8 years agoDO NOT MERGE Revert "DO NOT MERGE Use POSIX timer API for wake alarms instead of...
Scott James Remnant [Mon, 19 Oct 2015 17:48:06 +0000 (10:48 -0700)]
DO NOT MERGE Revert "DO NOT MERGE Use POSIX timer API for wake alarms instead of OSI callouts."

Also reverts:
  "Fix build: use unsigned long long in arithmetic expression."
  "Fix build: add LOG_TAG parameter to LOG_* macros."

These CLs cause build failures on various platforms, an alternate
approach is being developed.

8 years agoCorrect project name in Style Guide
Scott James Remnant [Tue, 20 Oct 2015 01:30:36 +0000 (01:30 +0000)]
Correct project name in Style Guide
am: d20656568b

* commit 'd20656568beb2f3d1a6528771e6ac463ca92364c':
  Correct project name in Style Guide

8 years agoResolve merge resolution differences between branches
Scott James Remnant [Tue, 20 Oct 2015 01:30:28 +0000 (01:30 +0000)]
Resolve merge resolution differences between branches
am: 02a29284a2  -s ours

* commit '02a29284a26a9d63210865ae9f086c0ad730ca78':
  Resolve merge resolution differences between branches

8 years agoCorrect project name in Style Guide
Scott James Remnant [Tue, 20 Oct 2015 01:02:03 +0000 (18:02 -0700)]
Correct project name in Style Guide

Change-Id: I07f41629b06820b85bf95ca255c68fc2ea78217a

8 years agoResolve merge resolution differences between branches
Scott James Remnant [Mon, 19 Oct 2015 23:23:28 +0000 (16:23 -0700)]
Resolve merge resolution differences between branches

Change-Id: I7b2f5bcf3a43aacdfbb740589ca1538ade149473

8 years agoam 36d0e2b9: Add Flic smart button to interop database
Andre Eisenbach [Mon, 19 Oct 2015 21:09:10 +0000 (14:09 -0700)]
am 36d0e2b9: Add Flic smart button to interop database

* commit '36d0e2b97be8b04d6607e9c1d76bbd2c9c891305':
  Add Flic smart button to interop database

8 years agoam 1946f251: Add missing LOG_TAG as the first argument to LOG_ERROR()
Pavlin Radoslavov [Mon, 19 Oct 2015 21:09:10 +0000 (14:09 -0700)]
am 1946f251: Add missing LOG_TAG as the first argument to LOG_ERROR()

* commit '1946f2516f5d1384ea7d25bb87d019c1875ae7f0':
  Add missing LOG_TAG as the first argument to LOG_ERROR()

8 years agoam 577862e0: Update the usage of fixed_queue.
Pavlin Radoslavov [Mon, 19 Oct 2015 21:09:09 +0000 (14:09 -0700)]
am 577862e0: Update the usage of fixed_queue.

* commit '577862e0d87891164a469afcecd1135bf04d1f6e':
  Update the usage of fixed_queue.

8 years agoresolved conflicts for 5b9b1b89 to stage-aosp-master
Scott James Remnant [Mon, 19 Oct 2015 21:05:46 +0000 (14:05 -0700)]
resolved conflicts for 5b9b1b89 to stage-aosp-master

Change-Id: I26781a825590a9effbc7d622391775b2eca58902

8 years agoam e29c3430: GKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros
Pavlin Radoslavov [Mon, 19 Oct 2015 20:33:18 +0000 (13:33 -0700)]
am e29c3430: GKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros

* commit 'e29c3430bfee2d92ba09c3cb4780a577ffc90712':
  GKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros

8 years agoam 258c2538: GKI cleanup - moved GKI buffer allocation wrappers to OSI
Pavlin Radoslavov [Mon, 19 Oct 2015 20:33:17 +0000 (13:33 -0700)]
am 258c2538: GKI cleanup - moved GKI buffer allocation wrappers to OSI

* commit '258c2538e3b62a8cdb403f2730c45d721e5292b4':
  GKI cleanup - moved GKI buffer allocation wrappers to OSI

8 years agoam 9f1c9ad8: GKI cleanup - Moved struct TIMER_LIST_ENT to OSI
Pavlin Radoslavov [Mon, 19 Oct 2015 20:33:17 +0000 (13:33 -0700)]
am 9f1c9ad8: GKI cleanup - Moved struct TIMER_LIST_ENT to OSI

* commit '9f1c9ad85759c7663e3bbc494f8e75b2f107da67':
  GKI cleanup - Moved struct TIMER_LIST_ENT to OSI

8 years agoam 1a3844f9: GKI cleanup - Replaced usage of GKI queue with OSI fixed_queue
Pavlin Radoslavov [Mon, 19 Oct 2015 20:33:16 +0000 (13:33 -0700)]
am 1a3844f9: GKI cleanup - Replaced usage of GKI queue with OSI fixed_queue

* commit '1a3844f933bd63c8a381371dabfb35c6a0249e3e':
  GKI cleanup - Replaced usage of GKI queue with OSI fixed_queue

8 years agoam 1eb1ea0c: GKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI
Pavlin Radoslavov [Mon, 19 Oct 2015 20:33:15 +0000 (13:33 -0700)]
am 1eb1ea0c: GKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI

* commit '1eb1ea0cf2da992a3193506806e571dcbe3ec947':
  GKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI

8 years agoresolved conflicts for c196f214 to stage-aosp-master
Pavlin Radoslavov [Mon, 19 Oct 2015 20:24:32 +0000 (13:24 -0700)]
resolved conflicts for c196f214 to stage-aosp-master

Change-Id: I3c8acd59271180d5c11760d08ea960bb90040a8e

8 years agoam 89ba148d: Disable opening network debug ports for security reasons
Pavlin Radoslavov [Mon, 19 Oct 2015 19:55:07 +0000 (12:55 -0700)]
am 89ba148d: Disable opening network debug ports for security reasons

* commit '89ba148d2e19e6633318dd2d9a04bd2728281c30':
  Disable opening network debug ports for security reasons

8 years agoresolved conflicts for 2181f1a4 to stage-aosp-master
Scott James Remnant [Mon, 19 Oct 2015 19:21:22 +0000 (12:21 -0700)]
resolved conflicts for 2181f1a4 to stage-aosp-master

Change-Id: Ie6dd56d2605e732f9f9e08269d361288bb888874

8 years agoam 70ae7de9: GKI cleanup - Remove GKI pool related defines
Pavlin Radoslavov [Mon, 19 Oct 2015 19:10:39 +0000 (12:10 -0700)]
am 70ae7de9: GKI cleanup - Remove GKI pool related defines

* commit '70ae7de9451e3dc074a048ba98b672a6ba3a4551':
  GKI cleanup - Remove GKI pool related defines

8 years agoam 1d5b8592: GKI cleanup - Eliminate function GKI_get_pool_bufsize()
Pavlin Radoslavov [Mon, 19 Oct 2015 19:10:38 +0000 (12:10 -0700)]
am 1d5b8592: GKI cleanup - Eliminate function GKI_get_pool_bufsize()

* commit '1d5b85924df3a114efe6588e857d0de3eb47b1d2':
  GKI cleanup - Eliminate function GKI_get_pool_bufsize()

8 years agoam 21cce2ec: GKI cleanup - Eliminated function GKI_poolcount
Pavlin Radoslavov [Mon, 19 Oct 2015 19:10:38 +0000 (12:10 -0700)]
am 21cce2ec: GKI cleanup - Eliminated function GKI_poolcount

* commit '21cce2ecb75265845e7b24f2cde11e104b074838':
  GKI cleanup - Eliminated function GKI_poolcount

8 years agoam 2e3d006b: GKI cleanup - Eliminate usage of pool buffers
Pavlin Radoslavov [Mon, 19 Oct 2015 19:10:37 +0000 (12:10 -0700)]
am 2e3d006b: GKI cleanup - Eliminate usage of pool buffers

* commit '2e3d006b96eafb0651fe7f78d28250faf89405de':
  GKI cleanup - Eliminate usage of pool buffers

8 years agoam 6b24485c: Fix PAN and AV role switch war
tturney [Mon, 19 Oct 2015 19:10:37 +0000 (12:10 -0700)]
am 6b24485c: Fix PAN and AV role switch war

* commit '6b24485cec18ea111b05bc23f61d9c3f6a6b8747':
  Fix PAN and AV role switch war

8 years agoam 410970f2: Ensure thread priority is raised for media task / UIPC
Andre Eisenbach [Mon, 19 Oct 2015 19:10:37 +0000 (12:10 -0700)]
am 410970f2: Ensure thread priority is raised for media task / UIPC

* commit '410970f285ff34e6f1952dec2202825d890c3a0d':
  Ensure thread priority is raised for media task / UIPC

8 years agoam 8c24123f: Change UHID socket to be non-blocking
Andre Eisenbach [Mon, 19 Oct 2015 19:10:36 +0000 (12:10 -0700)]
am 8c24123f: Change UHID socket to be non-blocking

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

8 years agoam 7f2eed69: Check BR device count before initiating role switch
Nitin Shivpure [Mon, 19 Oct 2015 19:10:36 +0000 (12:10 -0700)]
am 7f2eed69: Check BR device count before initiating role switch

* commit '7f2eed693f328843ed912144ed6ffcab0f2e3e75':
  Check BR device count before initiating role switch

8 years agoam 642f2330: GKI cleanup - Eliminated function GKI_delay
Pavlin Radoslavov [Mon, 19 Oct 2015 19:10:35 +0000 (12:10 -0700)]
am 642f2330: GKI cleanup - Eliminated function GKI_delay

* commit '642f233005cdcbbbcb92b77d6297fc080b7f072e':
  GKI cleanup - Eliminated function GKI_delay

8 years agoam de86bfa2: Add libpower as a dependency to all device targets that include libosi.
Sharvil Nanavati [Mon, 19 Oct 2015 19:10:35 +0000 (12:10 -0700)]
am de86bfa2: Add libpower as a dependency to all device targets that include libosi.

* commit 'de86bfa27b3ae6a9812788efe2b76fa3e7931d56':
  Add libpower as a dependency to all device targets that include libosi.

8 years agoam 20a1555a: Allow BT inquiry while discovery is in progress.
tturney [Mon, 19 Oct 2015 19:10:34 +0000 (12:10 -0700)]
am 20a1555a: Allow BT inquiry while discovery is in progress.

* commit '20a1555a0665efaab69ff25b3e7842d5f6c110c8':
  Allow BT inquiry while discovery is in progress.

8 years agoam 7b4fdb40: Eliminate recursive calling when handling GATT related errors
Pavlin Radoslavov [Mon, 19 Oct 2015 19:10:34 +0000 (12:10 -0700)]
am 7b4fdb40: Eliminate recursive calling when handling GATT related errors

* commit '7b4fdb40e81a68d254f6bf7cefbc385d978fb9d0':
  Eliminate recursive calling when handling GATT related errors

8 years agoam aafe557b: Fix issue where bluesleep idle timer is not started
wang ping [Mon, 19 Oct 2015 19:10:33 +0000 (12:10 -0700)]
am aafe557b: Fix issue where bluesleep idle timer is not started

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

8 years agoam 530f7727: Fix btwrite timer timeout for Angler (2/2)
tturney [Mon, 19 Oct 2015 19:10:33 +0000 (12:10 -0700)]
am 530f7727: Fix btwrite timer timeout for Angler (2/2)

* commit '530f7727badf163705eb9638533f5af5d89fcacf':
  Fix btwrite timer timeout for Angler (2/2)

8 years agoam 9d0965c9: Implementation of net_test_bluedroid as a GTest.
Joshua Schwarz [Mon, 19 Oct 2015 19:10:32 +0000 (12:10 -0700)]
am 9d0965c9: Implementation of net_test_bluedroid as a GTest.

* commit '9d0965c9c9aaeac3dbb3b1ba5f76b3d9010f3eaa':
  Implementation of net_test_bluedroid as a GTest.

8 years agoam fda32d91: LE Multi-Advertising State Change Sub-event Wrong Variable Type
Jacob Lee [Mon, 19 Oct 2015 19:10:32 +0000 (12:10 -0700)]
am fda32d91: LE Multi-Advertising State Change Sub-event Wrong Variable Type

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

8 years agoam 4602429d: Fix incorrect SetConnScanParam function mapping
Sunny Kapdi [Mon, 19 Oct 2015 19:10:31 +0000 (12:10 -0700)]
am 4602429d: Fix incorrect SetConnScanParam function mapping

* commit '4602429dbcf5a5d6076f65450354be4db9f0f114':
  Fix incorrect SetConnScanParam function mapping

8 years agoam 11026214: Enable clang compilation.
Chih-Hung Hsieh [Mon, 19 Oct 2015 19:10:31 +0000 (12:10 -0700)]
am 11026214: Enable clang compilation.

* commit '110262140c4ab383a27d19c08e33f5937bd09c11':
  Enable clang compilation.

8 years agoam 3858011b: Send current RPA instead of pseudo-address on connect.
Sharvil Nanavati [Mon, 19 Oct 2015 19:10:31 +0000 (12:10 -0700)]
am 3858011b: Send current RPA instead of pseudo-address on connect.

* commit '3858011befbf62ac8c38af1493d9c61d43f999da':
  Send current RPA instead of pseudo-address on connect.

8 years agoam f34d336a: (-s ours) A2DP audio HAL: implement out_get_presentation_position()
Eric Laurent [Mon, 19 Oct 2015 19:10:30 +0000 (12:10 -0700)]
am f34d336a: (-s ours) A2DP audio HAL: implement out_get_presentation_position()

* commit 'f34d336a16a6788f667355b70a4d53b1325a25ed':
  A2DP audio HAL: implement out_get_presentation_position()

8 years agoam 28f294b9: Load factory Bluetooth address from system property
Ajay Panicker [Mon, 19 Oct 2015 19:03:02 +0000 (12:03 -0700)]
am 28f294b9: Load factory Bluetooth address from system property

* commit '28f294b94f6e05f4572672671535f66bb60f0c0a':
  Load factory Bluetooth address from system property

8 years agoam 6a42cbdb: Add a SCO routing command to net_hci.
Sharvil Nanavati [Mon, 19 Oct 2015 19:03:02 +0000 (12:03 -0700)]
am 6a42cbdb: Add a SCO routing command to net_hci.

* commit '6a42cbdb53d856a364a0c0fac28a732b55bc1cd9':
  Add a SCO routing command to net_hci.

8 years agoam 2af0bb6e: Fix merge discrepencies and resulting compile errors
Andre Eisenbach [Mon, 19 Oct 2015 19:03:01 +0000 (12:03 -0700)]
am 2af0bb6e: Fix merge discrepencies and resulting compile errors

* commit '2af0bb6e5f6b380f374d510c54eabdf74c32bdf2':
  Fix merge discrepencies and resulting compile errors

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 agoAdd missing LOG_TAG as the first argument to LOG_ERROR()
Pavlin Radoslavov [Thu, 8 Oct 2015 16:52:11 +0000 (09:52 -0700)]
Add missing LOG_TAG as the first argument to LOG_ERROR()

NOTE: This fix is needed as a side-effect of code merged
from different branches.

Change-Id: I1d25e719605d75899253732bd3d10ca0b552d244

8 years agoUpdate the usage of fixed_queue.
Pavlin Radoslavov [Thu, 8 Oct 2015 01:07:48 +0000 (18:07 -0700)]
Update the usage of fixed_queue.

 * Relax non-NULL requirements for fixed_queue by eliminating
   some of the asserts.
   Now, when semantically possible, fixed_queue - related function
   will return the appropriate value even if the queue pointer is NULL.
   This reduces clutter in the code where we had to do anyway
   "if (queue != NULL)" checks.

 * Add non-NULL guards in the few remaining places where
   fixed_queue_get_list(). For now, we need to use this function,
   hence the extra check.
   That function should be eliminated in the future, because all the
   code where it is used violates the semantics of using a queue.

Bug: 24723840
Change-Id: I47632a3515f3d27856d4870e18723d345c040d64

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 agoGKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros
Pavlin Radoslavov [Mon, 28 Sep 2015 06:27:10 +0000 (23:27 -0700)]
GKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros

Removed macros PORT_SCHEDULE_LOCK and PORT_SCHEDULE_UNLOCK
and replaced them with direct calls to mutex_global_lock()
and mutex_global_unlock() respectively.

Change-Id: I84a365feec239612b2224f029ae59f260cdb24a4

8 years agoGKI cleanup - moved GKI buffer allocation wrappers to OSI
Pavlin Radoslavov [Mon, 28 Sep 2015 03:59:05 +0000 (20:59 -0700)]
GKI cleanup - moved GKI buffer allocation wrappers to OSI

* Moved the following GKI buffer allocation functions to OSI:
  - GKI_getbuf() -> osi_getbuf()
  - GKI_freebuf() -> osi_freebuf()
  - GKI_get_buf_size() -> osi_get_buf_size()

  For now we need the osi_getbuf() / osi_freebuf() allocation wrapper,
  because we need to be able to call osi_get_buf_size() on the allocated
  buffer.
  In the future those should be replaced with osi_malloc() / osi_free().
  Currently, the osi_malloc() buffer size internal allocation tracker
 does not always track the size, hence we need the osi_getbuf() wrapper.

* Replaced GKI_MAX_BUF_SIZE with BT_DEFAULT_BUFFER_SIZE

* Added new file include/bt_common.h that can be usee to include
  few files that should be included alost everywhere (e.g. bt_target.h"
  NOTE: This file might be removed in the future and we should include
  everywhere the right set of header files.

* Removed some of the GKI-related references

* Removed file include/gki_target.h

Change-Id: Ie87830e73143de200746d54235aa99f228a95024

8 years agoGKI cleanup - Moved struct TIMER_LIST_ENT to OSI
Pavlin Radoslavov [Mon, 28 Sep 2015 02:39:37 +0000 (19:39 -0700)]
GKI cleanup - Moved struct TIMER_LIST_ENT to OSI

* Moved struct TIMER_LIST_ENT to file osi/include/non_repeating_timer.h
  and renamed it to timer_entry_t
  NOTE: This is a short-term solution. timer_entry_t should be
  removed, and its usage everywhere should be replaced by
  struct non_repeating_timer_t .
* Renamed TIMER_CBACK to timer_callback_t
* Renamed TIMER_PARAM_TYPE to timer_param_t

Change-Id: I9ca830718bf900195f9c0a513a97f6995322693b

8 years agoGKI cleanup - Replaced usage of GKI queue with OSI fixed_queue
Pavlin Radoslavov [Fri, 25 Sep 2015 18:21:15 +0000 (11:21 -0700)]
GKI cleanup - Replaced usage of GKI queue with OSI fixed_queue

* Added new functions to OSI:
  - fixed_queue_init()
  - fixed_queue_length()
  - fixed_queue_try_remove_from_queue()
  - fixed_queue_try_peek_last()

* Renamed fixed_queue_try_peek() to fixed_queue_try_peek_first()

* Replaced usage of GKI queue functions with OSI fixed_queue functions:
  - GKI_init_q() -> fixed_queue_new(SIZE_MAX)
    NOTE: unlike GKI_init_q(), fixed_queue_new() allocates memory /
    state that needs to be released by calling fixed_queue_free()
  - GKI_enqueue() -> fixed_queue_enqueue()
  - GKI_dequeue() -> fixed_queue_try_dequeue()
    NOTE: fixed_queue_try_dequeue() is non-blocking
  - GKI_queue_length() -> fixed_queue_length()
  - GKI_queue_is_empty() -> fixed_queue_is_empty()
  - GKI_getfirst() -> fixed_queue_try_peek_first()
  - GKI_getlast() -> fixed_queue_try_peek_last()
  - GKI_remove_from_queue() -> fixed_queue_try_remove_from_queue()
  - Queue elements iteration.
    In the fixed_queue implementation we have to use the underlying
    list_t mechanism to iterate over the elements.
    OLD:
      p = GKI_getfirst(queue);
      ...
      while ((p = GKI_getnext(p) != NULL) {
         ...
      }
    NEW:
      list_t *list = fixed_queue_get_list(queue);
      for (const list_node_t *node = list_begin(list);
           node != list_end(list); node = list_next(node)) {
          p = list_node(node);
      }

* Remove initialization of the GKI module, because it is not needed
  anymore

* Removed unused files in GKI:
  gki/common/gki_common.h
  gki/ulinux/gki_int.h
  gki/ulinux/gki_ulinux.c

Change-Id: I3ff9464db75252d6faf7476a9ca67c88e535c51c

8 years agoGKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI
Pavlin Radoslavov [Fri, 25 Sep 2015 05:07:53 +0000 (22:07 -0700)]
GKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI

Added new functions mutex_global_lock() and mutex_global_unlock()
within the OSI module, and replaced GKI_disable() and GKI_enable()
with those functions.

Also, minor cleanup in the gki.h header file.

Change-Id: I5f410e3174541224fcf30f37e1524ef099c25193

8 years agoGKI cleanup - Moved GKI_get_os_tick_count() to OSI
Pavlin Radoslavov [Thu, 24 Sep 2015 03:39:53 +0000 (20:39 -0700)]
GKI cleanup - Moved GKI_get_os_tick_count() to OSI

 * Renamed function GKI_get_os_tick_count() to time_get_os_boottime_ms()
   and moved it to the OSI module: to the new file osi/src/time.c .
   The corresponding header file is osi/include/time.h

 * Added unit tests for function time_get_os_boottime_ms() in file
   osi/test/time_test.cpp

 * Removed "osi/include" from the list of paths to search for include
   files. This is needed, because file name collision of "time.h"
   in osi/include and the system <time.h>

Change-Id: I934be0c8f392150a352947326546bcf8aa070f97

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 agoGKI cleanup - Remove GKI pool related defines
Pavlin Radoslavov [Wed, 23 Sep 2015 21:49:24 +0000 (14:49 -0700)]
GKI cleanup - Remove GKI pool related defines

 * Removed pool ID related defines
 * Updated / renamed / cleanup buffer size related defines
 * Added new #define BT_DEFAULT_BUFFER_SIZE
 * Removed unused defines

Change-Id: Ib1fbf463d1e6fda2c71631347de0c365a37ba5ce

8 years agoGKI cleanup - Eliminate function GKI_get_pool_bufsize()
Pavlin Radoslavov [Wed, 23 Sep 2015 17:08:20 +0000 (10:08 -0700)]
GKI cleanup - Eliminate function GKI_get_pool_bufsize()

Change-Id: I87168157b9bb3e9d315c03b98a10d18b38cce3e1

8 years agoGKI cleanup - Eliminated function GKI_poolcount
Pavlin Radoslavov [Tue, 22 Sep 2015 18:27:30 +0000 (11:27 -0700)]
GKI cleanup - Eliminated function GKI_poolcount

Refactored function l2c_link_adjust_chnl_allocation.
Now the buffer quota computation is done without using the
GKI poll counts.

Change-Id: I669492becc9024c12f3360ea58a06188caa6420a

8 years agoGKI cleanup - Eliminate usage of pool buffers
Pavlin Radoslavov [Fri, 18 Sep 2015 17:51:31 +0000 (10:51 -0700)]
GKI cleanup - Eliminate usage of pool buffers

* Replace usage of function GKI_getpoolbuf() with GKI_getbuf()
* Remove usage of function GKI_poolutilization()
* Remove usage of function GKI_poolfreecount()

Change-Id: Ide938192b878bbfb4912642c903fce548f2b5368

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 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 agoGKI cleanup - Eliminated function GKI_delay
Pavlin Radoslavov [Wed, 16 Sep 2015 20:30:26 +0000 (13:30 -0700)]
GKI cleanup - Eliminated function GKI_delay

Removed function GKI_delay from the GKI module, and replaced
it with a local static function inside file btif/src/btif_rc.c - the
only place it is (still) used.

Change-Id: Id8f3f700efd22d6e31c70aa8b1724ffa9afbc631

8 years agoAdd libpower as a dependency to all device targets that include libosi.
Sharvil Nanavati [Wed, 9 Sep 2015 22:56:17 +0000 (15:56 -0700)]
Add libpower as a dependency to all device targets that include libosi.

Bug: 23902077

Change-Id: Icc7119a2b3199310e2210d46f599da00261fdff6

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 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 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 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 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 agoEnable clang compilation.
Chih-Hung Hsieh [Thu, 27 Aug 2015 19:07:17 +0000 (12:07 -0700)]
Enable clang compilation.

Files under system/bt/device do not use atomic operation.
Old setting of LOCAL_CLANG is unnecessary.

Other atomic operations in system/bt/bt/core were changed
and osi/include/atomic.h was removed, in
https://android-review.googlesource.com/#/c/166762

Change-Id: I807e1fd1792e801392f40ab92a8990c826a5785a

8 years agoSend current RPA instead of pseudo-address on connect.
Sharvil Nanavati [Mon, 10 Aug 2015 20:00:06 +0000 (13:00 -0700)]
Send current RPA instead of pseudo-address on connect.

Bug: 23079777

Change-Id: If6da80392748cdaad2a4833dd31fe299b62c28e3

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

And complete implementation of out_get_render_position()

Bug: 21199150
Change-Id: I95038ad68433e401b096a0159282a2ae372570e1

8 years agoLoad factory Bluetooth address from system property
Ajay Panicker [Mon, 3 Aug 2015 23:29:31 +0000 (16:29 -0700)]
Load factory Bluetooth address from system property

Implemented a check to grab the ro.boot.btmacaddr property in case the
device fails to receive an address beforehand.

Bug: 22618015
Change-Id: Ie322888e114a732f8e85c81793e3e5e5eacffc7a

8 years agoAdd a SCO routing command to net_hci.
Sharvil Nanavati [Thu, 16 Jul 2015 09:55:27 +0000 (02:55 -0700)]
Add a SCO routing command to net_hci.

This allows us to change the SCO routing parameters at runtime while
debugging / doing device bringup.

Change-Id: I8bafb7c7fb7ad7470d378cd14a7ee4aad63f3b9b

8 years agoFix merge discrepencies and resulting compile errors
Andre Eisenbach [Fri, 22 May 2015 00:07:21 +0000 (17:07 -0700)]
Fix merge discrepencies and resulting compile errors

Change-Id: I29fbec9f668ee9218b90a222801c9ddcb9352017

8 years agoam ff1469f0: service/doc: Fixed some post-review comments
Arman Uguray [Wed, 14 Oct 2015 20:23:59 +0000 (20:23 +0000)]
am ff1469f0: service/doc: Fixed some post-review comments

* commit 'ff1469f0e762840c0c745e7306b1edd96167a4c6':
  service/doc: Fixed some post-review comments

8 years agoam 9fc7d81c: service: Fix broken UUID advertising
Arman Uguray [Wed, 14 Oct 2015 20:19:58 +0000 (20:19 +0000)]
am 9fc7d81c: service: Fix broken UUID advertising

* commit '9fc7d81c2dfa3f9b7c4381cd83e5e8f788e235f3':
  service: Fix broken UUID advertising

8 years agoservice/doc: Fixed some post-review comments
Arman Uguray [Tue, 13 Oct 2015 16:04:44 +0000 (09:04 -0700)]
service/doc: Fixed some post-review comments

Change-Id: I62e4f26cc55763f5880922bd06373db47329def9

8 years agoam 87222e0e: service/client: Add start-adv -u flag
Arman Uguray [Wed, 14 Oct 2015 20:14:55 +0000 (20:14 +0000)]
am 87222e0e: service/client: Add start-adv -u flag

* commit '87222e0e826216c69f6a9a5bfe77689561067474':
  service/client: Add start-adv -u flag

8 years agoam de5cc703: service: Improve creating UUIDs from string
Arman Uguray [Wed, 14 Oct 2015 20:14:53 +0000 (20:14 +0000)]
am de5cc703: service: Improve creating UUIDs from string

* commit 'de5cc7034275bf0dfc0124d07b28c70ec634aed7':
  service: Improve creating UUIDs from string

8 years agoservice: Fix broken UUID advertising
Arman Uguray [Wed, 14 Oct 2015 19:22:27 +0000 (12:22 -0700)]
service: Fix broken UUID advertising

The BTIF API expects a single 128-bit UUID in little-endian form to be
passed for its multi-adv service UUID field. The system service never
did this conversion so UUIDs were never properly advertised. This CL
fixes this.

Bug: 24247700
Change-Id: I541921da85bdabd907bfa9f75fbde7a3477ff593