OSDN Git Service

android-x86/system-bt.git
8 years agoDon\'t send AT+BCC if local device doesn\'t support codec negotiation.
Sharvil Nanavati [Thu, 17 Mar 2016 00:22:39 +0000 (00:22 +0000)]
Don\'t send AT+BCC if local device doesn\'t support codec negotiation.
am: e79eaef

* commit 'e79eaef05e0778917dcc77d95292370d5aa4491e':
  Don't send AT+BCC if local device doesn't support codec negotiation.

8 years agoDon't send AT+BCC if local device doesn't support codec negotiation.
Sharvil Nanavati [Tue, 15 Mar 2016 20:13:45 +0000 (13:13 -0700)]
Don't send AT+BCC if local device doesn't support codec negotiation.

The current code only checked if the peer supported codec negotiation
before sending AT+BCC. But if codec negotation is disabled on the
local device, we should definitely not send AT+BCC.

Bug: 27213013
Change-Id: Id372a32a61a3d96d5c093bc50594ef0b8c2eff2e

8 years agoHID service discovery refactor
Jakub Pawlowski [Wed, 16 Mar 2016 19:27:22 +0000 (19:27 +0000)]
HID service discovery refactor
am: e8187e5

* commit 'e8187e565382ae9afb52a7992e9a6ab1e3108999':
  HID service discovery refactor

8 years agoRestructure GATTC
Jakub Pawlowski [Wed, 16 Mar 2016 19:27:22 +0000 (19:27 +0000)]
Restructure GATTC
am: 5204fd7

* commit '5204fd71b3ca799942c45a36548faeba4d89477d':
  Restructure GATTC

8 years agoHID service discovery refactor
Jakub Pawlowski [Tue, 15 Mar 2016 22:35:38 +0000 (15:35 -0700)]
HID service discovery refactor

This patch changes how HID is initialized.
Up till now, HID discovery was intricately chained,
to make sure two operations are not scheduled at same time.
From now on, all discovery is done and all operations are
scheduled for execution right away. There is separate set
of functions making sure all operations will be executed
without collisions.

This patch also removes BTA_HH_SCPP_INST_DEF, which was
used as hardcoded service id.

Bug: 27698756
Change-Id: I30a7388e129844c5e4727b2ed2b7c05867cc73a8

8 years agoRestructure GATTC
Jakub Pawlowski [Tue, 15 Mar 2016 22:35:00 +0000 (15:35 -0700)]
Restructure GATTC

This patch changes how GATTC is structured. Up till now, it
contained tBTA_GATTC_CACHE and tBTA_GATTC_CACHE_ATTR. Those
structures were so ugly, someone hide them inside internal
header, to make sure noone would ever access them from outside
GATTC. They are now replaced with:
tBTA_GATTC_SERVICE,
tBTA_GATTC_CHARACTERISTIC,
tBTA_GATTC_DESCRIPTOR and
tBTA_GATTC_INCLUDED_SVC.

Those looks much better, and were made globally avaliable.
Thanks to way they're build, we no longer need set of access
methods, which were also very ugly:
BTA_GATTC_GetFirstChar
BTA_GATTC_GetNextChar
BTA_GATTC_GetFirstIncludedService
etc.

This patch breaks HID, DO NOT SUBMIT without HID refactor.

Bug: 27455533
Change-Id: Ic42cfff175e0cc1a0d8e1a1216e2b4b756cbf77d

8 years agoAdd LE L2CAP Connection Oriented Channel
Navin Kochar [Wed, 16 Mar 2016 18:59:34 +0000 (18:59 +0000)]
Add LE L2CAP Connection Oriented Channel
am: 6721232

* commit '6721232129f137ab024d9b95fc1094a714bc4c01':
  Add LE L2CAP Connection Oriented Channel

8 years agoStart listener thread only after successful open call
Srinu Jella [Wed, 16 Mar 2016 18:59:34 +0000 (18:59 +0000)]
Start listener thread only after successful open call
am: 95b9bc0

* commit '95b9bc0e533545a14cf12877c72e0d96ab4370fd':
  Start listener thread only after successful open call

8 years agoAdd LE L2CAP Connection Oriented Channel
Navin Kochar [Wed, 9 Mar 2016 17:41:53 +0000 (23:11 +0530)]
Add LE L2CAP Connection Oriented Channel

This implementation for LE L2CAP Connection Oriented Channel (a Bluetooth
Core Spec 4.1 feature) has been tested on the following formal and informal
IOP events conducted by BT SIG Sport and Fitness Working Group.

* Informal IOP – Tokyo 2014
* UPF 49 – Berlin 2014
* Formal IOP – Tokyo 2014
* Formal IOP – Santa Clara 2015

Change-Id: Ia6de62f9321a78b98930629f65078884157a9c0d
Signed-off-by: Navin Kochar <navin.kochar@intel.com>
8 years agoStart listener thread only after successful open call
Srinu Jella [Fri, 22 Jan 2016 12:19:15 +0000 (17:49 +0530)]
Start listener thread only after successful open call

Use case: Stress tests ON\OFF with different concurrent
scenarios

Failure: Crash in btsnoop_net_listen thread

Root cause: While starting and shutting down the module
we are calling same function update_logging(). While at
the start it is creating listen thread and throwing error
and exiting without closing the listen thread. While
shutdown of module it "should_log" matches with "is_logging"
and it considers cleanup is not required and returns,
leaving Behind the listen thread open. In the next BT ON,
another listen thread is created and causes the crash.

Fix: Started listener thread after prerequisite operations
are successful.

Change-Id: I92ef293d9b061d0ea65a0c41b506870152114bb0

8 years agoAllocate sufficient memory for FCS
Srinu Jella [Tue, 15 Mar 2016 18:11:30 +0000 (18:11 +0000)]
Allocate sufficient memory for FCS
am: f6a64de84f

* commit 'f6a64de84ff3045d6b4e5a9de44da947f597fbb7':
  Allocate sufficient memory for FCS

8 years agoAllocate sufficient memory for FCS
Srinu Jella [Tue, 15 Mar 2016 11:06:19 +0000 (16:36 +0530)]
Allocate sufficient memory for FCS

Use Case: Hit LeakCanary detection during HDP

Failure: Crash while running LeakCanary detection.

Root cause: Did not have sufficient memory for data frame
which lead to crash.

Fix: Allocating sufficient memory for the data frame
which includes FCS in the header field.

Change-Id: I3bb862f29ecc854423796dc89820ba21c5db6050

8 years agoosi: add osi_rand()
Marie Janssen [Mon, 14 Mar 2016 22:52:40 +0000 (22:52 +0000)]
osi: add osi_rand()
am: 093f013ab8

* commit '093f013ab883ed2ffeef875b17fd940dd92af659':
  osi: add osi_rand()

8 years agoosi: add osi_rand()
Marie Janssen [Thu, 10 Mar 2016 19:27:53 +0000 (11:27 -0800)]
osi: add osi_rand()

Provide a replacement for rand() which has a better random source.

Change-Id: I38a8c74d86b89ec160b43b0f648f53b463be89bb

8 years agoRemoved unused function bta_sys_vs_hdl()
Pavlin Radoslavov [Mon, 14 Mar 2016 19:56:21 +0000 (19:56 +0000)]
Removed unused function bta_sys_vs_hdl()
am: bea3130893

* commit 'bea31308930f20aac1f7422f262e509e9f51f084':
  Removed unused function bta_sys_vs_hdl()

8 years agoRemoved unused function bta_sys_vs_hdl()
Pavlin Radoslavov [Mon, 14 Mar 2016 16:45:24 +0000 (09:45 -0700)]
Removed unused function bta_sys_vs_hdl()

Change-Id: Iaf199d418aafc0b518df2f7febfa1c9e29f1fa42

8 years agoRemoved duplicate (re)define of BTA_DM_SDP_DB_SIZE
Pavlin Radoslavov [Mon, 14 Mar 2016 18:53:05 +0000 (18:53 +0000)]
Removed duplicate (re)define of BTA_DM_SDP_DB_SIZE
am: f958ee655d

* commit 'f958ee655d67b78018a56a593b6e669ca543991e':
  Removed duplicate (re)define of BTA_DM_SDP_DB_SIZE

8 years agoRemoved duplicate (re)define of BTA_DM_SDP_DB_SIZE
Pavlin Radoslavov [Mon, 14 Mar 2016 17:06:45 +0000 (10:06 -0700)]
Removed duplicate (re)define of BTA_DM_SDP_DB_SIZE

Removed conditional duplicate re-define of BTA_DM_SDP_DB_SIZE.
BTA_DM_SDP_DB_SIZE has been already (conditionally) defined to 8000
in file include/bt_target.h

The conditional re-define of BTA_DM_SDP_DB_SIZE to a smaller
value (250) in file bta/dm/bta_dm_int.h should be removed, because
it is confusing and error-prone.

Change-Id: Id10a45562c7c57fd0a9131ef50b7b7a5c2801ec5

8 years agoFree allocation tracker hash map entries to reduce memory pressure
Srinu Jella [Mon, 14 Mar 2016 16:24:30 +0000 (16:24 +0000)]
Free allocation tracker hash map entries to reduce memory pressure
am: 2bea757aba

* commit '2bea757aba0d0d84865d7d0d675d8bcf31f90b22':
  Free allocation tracker hash map entries to reduce memory pressure

8 years agoFree allocation tracker hash map entries to reduce memory pressure
Srinu Jella [Mon, 14 Mar 2016 16:08:54 +0000 (16:08 +0000)]
Free allocation tracker hash map entries to reduce memory pressure
am: bb9148eda2

* commit 'bb9148eda25d7d39399fd837d4b13be9b4ecccb4':
  Free allocation tracker hash map entries to reduce memory pressure

8 years agoFree allocation tracker hash map entries to reduce memory pressure
Srinu Jella [Fri, 6 Nov 2015 09:29:10 +0000 (14:59 +0530)]
Free allocation tracker hash map entries to reduce memory pressure

Use case:
A2DP playback becomes choppy after long hours of testing.

Steps:
1. installed 3rd party app that performs recurring LE scans.
2. Leave phone to run overnight.
3. After 24h+, connect a Bluetooth headset and music is very choppy.

Root cause:
The memory allocation tracker has support for double free check
where it stores all allocations in hash map but it never get
removed to track double free issue, A2DP memory allocation is
taking more time and leading to choppyness.

Fix:
Free the hash map entry to avoid memory leak from
allocation tracker.

Bug: 27621407
Change-Id: If57bd0b89c1d9b99c4f066c537a9e0fa49bc093f

8 years agoFree allocation tracker hash map entries to reduce memory pressure
Srinu Jella [Fri, 6 Nov 2015 09:29:10 +0000 (14:59 +0530)]
Free allocation tracker hash map entries to reduce memory pressure

Use case:
A2DP playback becomes choppy after long hours of testing.

Steps:
1. installed 3rd party app that performs recurring LE scans.
2. Leave phone to run overnight.
3. After 24h+, connect a Bluetooth headset and music is very choppy.

Root cause:
The memory allocation tracker has support for double free check
where it stores all allocations in hash map but it never get
removed to track double free issue, A2DP memory allocation is
taking more time and leading to choppyness.

Fix:
Free the hash map entry to avoid memory leak from
allocation tracker.

Bug: 27621407
Change-Id: If57bd0b89c1d9b99c4f066c537a9e0fa49bc093f

8 years agoAdd pair event device class and fix timestamp
Ajay Panicker [Fri, 11 Mar 2016 23:51:18 +0000 (23:51 +0000)]
Add pair event device class and fix timestamp
am: fecf606348

* commit 'fecf606348a0751e0be30e376c9817195afe68ca':
  Add pair event device class and fix timestamp

8 years agoAdd pair event device class and fix timestamp
Ajay Panicker [Thu, 10 Mar 2016 23:30:16 +0000 (15:30 -0800)]
Add pair event device class and fix timestamp

Added a function to get the device class to use with pair events.
Also update check_cod_hid as it was only being used with COD_HID_MAJOR.
Also fixed an issue with pair event timestamps where they were
using the wrong clock.

Bug: 27499938
Change-Id: I0805d7a3f82b28e7d7e73d80818948843f51a82b

8 years agoMerge "Add pair event device class and fix timestamp"
Ajay Panicker [Fri, 11 Mar 2016 19:44:55 +0000 (19:44 +0000)]
Merge "Add pair event device class and fix timestamp"
am: 00ada513e7

* commit '00ada513e7a034ac372557de5ef8097fc99a9109':
  Add pair event device class and fix timestamp

8 years agoMerge "Add pair event device class and fix timestamp"
Ajay Panicker [Fri, 11 Mar 2016 19:33:21 +0000 (19:33 +0000)]
Merge "Add pair event device class and fix timestamp"

8 years agoAdd pair event device class and fix timestamp
Ajay Panicker [Thu, 10 Mar 2016 23:30:16 +0000 (15:30 -0800)]
Add pair event device class and fix timestamp

Added a function to get the device class to use with pair events.
Also update check_cod_hid as it was only being used with COD_HID_MAJOR.
Also fixed an issue with pair event timestamps where they were
using the wrong clock.

Bug: 27499938
Change-Id: I0805d7a3f82b28e7d7e73d80818948843f51a82b

8 years agoFix startup error when no config file provided
Jakub Pawlowski [Thu, 10 Mar 2016 20:08:31 +0000 (20:08 +0000)]
Fix startup error when no config file provided
am: e919eda232

* commit 'e919eda23208efd6c8d94e27d973632551412b95':
  Fix startup error when no config file provided

8 years agoFix startup error when no config file provided
Jakub Pawlowski [Thu, 10 Mar 2016 17:20:45 +0000 (09:20 -0800)]
Fix startup error when no config file provided

If bluetoothtbd was started without config file
present, it would die on asserts about missing config.
From now it'll proceed with default settings.

Change-Id: I46c35fb2ed71efa49430206da13a19ca7df44a64

8 years agoMerge "Linux vendor driver linkage fixes"
Jakub Pawlowski [Thu, 10 Mar 2016 19:06:44 +0000 (19:06 +0000)]
Merge "Linux vendor driver linkage fixes"
am: a15f218c9c

* commit 'a15f218c9c3164d943bbf32b463d6a9d866e76bd':
  Linux vendor driver linkage fixes

8 years agoMerge "Linux vendor driver linkage fixes"
Jakub Pawlowski [Thu, 10 Mar 2016 18:58:43 +0000 (18:58 +0000)]
Merge "Linux vendor driver linkage fixes"

8 years agoLinux vendor driver linkage fixes
Jakub Pawlowski [Thu, 10 Mar 2016 17:25:48 +0000 (09:25 -0800)]
Linux vendor driver linkage fixes

Linux driver depends on osi, so it must be linked with it.
It also must export bt_vendor_interface_t, and named properly,
otherwise it is not being recognized as vendor library.

Bug: 27589244
Change-Id: Ib6817b11e4226f2e289ff0d521daca059ca9aca6

8 years agoMerge "Fix build error caused by missing LOG_TAG"
Patrick Tsai [Wed, 9 Mar 2016 19:31:43 +0000 (19:31 +0000)]
Merge "Fix build error caused by missing LOG_TAG"
am: a34a404e3d

* commit 'a34a404e3d59b7c25a64471b4502f37c2c75d4de':
  Fix build error caused by missing LOG_TAG

8 years agoMerge "Add missing \'cd third_party\' step"
Patrick Tsai [Wed, 9 Mar 2016 19:31:43 +0000 (19:31 +0000)]
Merge "Add missing \'cd third_party\' step"
am: 8b1e8c3154

* commit '8b1e8c3154884451a4d71db4583334ba1c09729b':
  Add missing 'cd third_party' step

8 years agoAdd missing log tag
Jakub Pawlowski [Wed, 9 Mar 2016 19:31:42 +0000 (19:31 +0000)]
Add missing log tag
am: 85e22b32ec

* commit '85e22b32ec3482a09dc019ee6fd096a31fd1bf64':
  Add missing log tag

8 years agoMerge "Fix build error caused by missing LOG_TAG"
Jakub Pawlowski [Wed, 9 Mar 2016 19:25:45 +0000 (19:25 +0000)]
Merge "Fix build error caused by missing LOG_TAG"

8 years agoMerge "Add missing 'cd third_party' step"
Jakub Pawlowski [Wed, 9 Mar 2016 19:25:06 +0000 (19:25 +0000)]
Merge "Add missing 'cd third_party' step"

8 years agoAdd missing log tag
Jakub Pawlowski [Wed, 9 Mar 2016 19:22:00 +0000 (11:22 -0800)]
Add missing log tag

Change-Id: Icae6cf63de8d298fb12451887594abe24b026c77

8 years agoRemove bta_gattc_id2handle
Jakub Pawlowski [Wed, 9 Mar 2016 00:47:47 +0000 (00:47 +0000)]
Remove bta_gattc_id2handle
am: 14a73093ba

* commit '14a73093ba78d237959f625fd27bd4edd9f0ff48':
  Remove bta_gattc_id2handle

8 years agoUse attribute handle instead of id in GATT cache
Jakub Pawlowski [Wed, 9 Mar 2016 00:47:43 +0000 (00:47 +0000)]
Use attribute handle instead of id in GATT cache
am: bc5d65496d

* commit 'bc5d65496d7dc9d87d4fe3e3c92dadb043559786':
  Use attribute handle instead of id in GATT cache

8 years agoRemove bta_gattc_id2handle
Jakub Pawlowski [Fri, 4 Mar 2016 19:46:08 +0000 (11:46 -0800)]
Remove bta_gattc_id2handle

Now that the instance id is equal to handle, we no longer need this
mapping function.

Bug: 27455533
Change-Id: I6760f8fc81460df8520d4ebf1899ed256ce5ad1e

8 years agoUse attribute handle instead of id in GATT cache
Jakub Pawlowski [Wed, 2 Mar 2016 22:47:55 +0000 (14:47 -0800)]
Use attribute handle instead of id in GATT cache

Currently we generate an id for each GATT attribute. Those ids
are used to differentiate between attributes that have the same
UUID. We need to get rid of those ids because it won't work with
partial GATT database updates due to "service change"
notifications. Instead, attribute handles, which are unique
across the whole GATT database will be used.

This is first patch in series to achieve that. It gets rid
of id generation, and just assigns handle in place of ids inside
of gatt cache. Upcoming patches will change the GATT cache API
and eventually get rid of "id" completly.

Bug: 27455533
Change-Id: I74c10872ecc223329b8ac7fef4085963bf272624

8 years agoHID multi-device refactoring
Jakub Pawlowski [Tue, 8 Mar 2016 23:49:18 +0000 (23:49 +0000)]
HID multi-device refactoring
am: 22aaded594

* commit '22aaded594fab42d5b30354a94c51d0b8666089b':
  HID multi-device refactoring

8 years agoSDP: Restrict attribute length to SDP_MAX_ATTR_LEN
venkata Jagadeesh [Tue, 8 Mar 2016 23:46:29 +0000 (23:46 +0000)]
SDP: Restrict attribute length to SDP_MAX_ATTR_LEN
am: 15b8ab4b33

* commit '15b8ab4b338eed3fa35d8f4751eeab2a6cdcd3ef':
  SDP: Restrict attribute length to SDP_MAX_ATTR_LEN

8 years agoHID multi-device refactoring
Jakub Pawlowski [Tue, 8 Mar 2016 20:36:46 +0000 (12:36 -0800)]
HID multi-device refactoring

We don't really support multiple HID services in same device.
We shouldn't use default value 0 for service id.
We shouldn't merge service id and characteristic id into one field,
as it's done not right right now.

Bug: 27455533
Change-Id: I46cc1b62bb2c7393e62f3b1a8e4650706954a066

8 years agoSDP: Restrict attribute length to SDP_MAX_ATTR_LEN
venkata Jagadeesh [Tue, 15 Dec 2015 07:30:01 +0000 (13:00 +0530)]
SDP: Restrict attribute length to SDP_MAX_ATTR_LEN

Use case:
Bluetooth crash during the SNS testing.

Root Cause:
In sdpu_build_partial_attrib_entry there is no length check, it can
exceed the maximum allowable value and lead to a crash in memcpy.

Fix:
Restrict remaining attribute length to SDP_MAX_ATTR_LEN
in sdpu_build_partial_attrib_entry.

Change-Id: I5bde6868b82e50b3c09cf94277dabb4862f0a2a8

8 years agobluetooth-cli: add support for --exec am: 5d80cb938d
Marie Janssen [Tue, 8 Mar 2016 19:52:28 +0000 (19:52 +0000)]
bluetooth-cli: add support for --exec am: 5d80cb938d
am: e228c9dbcd

* commit 'e228c9dbcd98a6bdfd972410d8eaeab885294acc':
  bluetooth-cli: add support for --exec

8 years agobluetooth-cli: add support for --exec
Marie Janssen [Tue, 8 Mar 2016 19:50:27 +0000 (19:50 +0000)]
bluetooth-cli: add support for --exec
am: 5d80cb938d

* commit '5d80cb938d7fb3312870a047749cc839ba5bafca':
  bluetooth-cli: add support for --exec

8 years agobluetooth-cli: add support for --exec
Marie Janssen [Fri, 22 Jan 2016 02:45:53 +0000 (18:45 -0800)]
bluetooth-cli: add support for --exec

Adds the --exec and -e arguments, which execute commands when the
cli starts.

This also adds support for chaining commands at the command line by
separating them with ';' characters.

Change-Id: Ic2bf8a908fbb7fb4cf775810754571fa96d75e87

8 years agoFix the build
Dimitry Ivanov [Tue, 8 Mar 2016 19:42:24 +0000 (19:42 +0000)]
Fix the build
am: 597ce3bd08

* commit '597ce3bd08533c24cd61be0ef4ad8a237571770f':
  Fix the build

8 years agoFix the build
Dimitry Ivanov [Tue, 8 Mar 2016 19:32:56 +0000 (11:32 -0800)]
Fix the build

Change-Id: Ib226f087a76ddd426e40f4d6d94f2ed758660c36

8 years agoMove focus handling entirely to component calling fluoride.
Sanket Agarwal [Tue, 8 Mar 2016 19:16:08 +0000 (19:16 +0000)]
Move focus handling entirely to component calling fluoride.
am: 547b7b5257

* commit '547b7b52578fddbd9e42ce1cc7e7bba9dded1d7d':
  Move focus handling entirely to component calling fluoride.

8 years agoMove focus handling entirely to component calling fluoride.
Sanket Agarwal [Wed, 10 Feb 2016 23:24:09 +0000 (15:24 -0800)]
Move focus handling entirely to component calling fluoride.

Audio focus handling for A2DP sink currently split between Fluoride and
the component sitting on top of it. Since this is not the best place to
decide policies, we move all such decisions to the upper layer.

Bug: b/26928143

Change-Id: I67a1a2a50782289e7e31447b01ee29a21bc8dac2

8 years agoGATT cache storage refactoring am: c10b209f62
Jakub Pawlowski [Tue, 8 Mar 2016 04:15:42 +0000 (04:15 +0000)]
GATT cache storage refactoring am: c10b209f62
am: d7fba0cad0

* commit 'd7fba0cad007a5d31798983660b25b03e6794a49':
  GATT cache storage refactoring

8 years agoIgnore LCB entries that migth have been released while queued am: fb2105f348
Pavlin Radoslavov [Tue, 8 Mar 2016 04:15:30 +0000 (04:15 +0000)]
Ignore LCB entries that migth have been released while queued am: fb2105f348
am: 64a81c78c5

* commit '64a81c78c58dfe165ee4de77b7694bde8a86f48e':
  Ignore LCB entries that migth have been released while queued

8 years agoGATT cache storage refactoring
Jakub Pawlowski [Tue, 8 Mar 2016 03:04:34 +0000 (03:04 +0000)]
GATT cache storage refactoring
am: c10b209f62

* commit 'c10b209f62a52d2a782d4d8c97734b6c142f2567':
  GATT cache storage refactoring

8 years agoIgnore LCB entries that migth have been released while queued
Pavlin Radoslavov [Tue, 8 Mar 2016 02:11:32 +0000 (02:11 +0000)]
Ignore LCB entries that migth have been released while queued
am: 0c33fde894

* commit '0c33fde894b566484b9956560e8b701b82fa04cc':
  Ignore LCB entries that migth have been released while queued

8 years agoGATT cache storage refactoring
Jakub Pawlowski [Sun, 6 Mar 2016 01:57:51 +0000 (17:57 -0800)]
GATT cache storage refactoring

Currently when storing GATT cache into file, we save it piece
after piece, max 10 elements at once. This is not necessary,
we have enough space to just save all at once.
Also the logic doesn't need to be so complicated - no need
to state machine for such simple task.

Bug: 27455533
Change-Id: I82923dbedfb317835e45e13e0ea28151eb524d37

8 years agoIgnore LCB entries that migth have been released while queued
Pavlin Radoslavov [Tue, 1 Mar 2016 21:32:41 +0000 (13:32 -0800)]
Ignore LCB entries that migth have been released while queued

Function btm_send_pending_direct_conn() dequeues tL2C_LCB
entries from the conn_pending_q queue and calls the processing
function.
However, there is the possilility of a race condition
and releasing the entry by l2cu_release_lcb() before it is processed.
Now tL2C_LCB that are not in_use are ignored.

Bug: 27418154
Change-Id: I4b5fda605a60c8aebbf5587bb12dd74ac5d28f68

8 years agoIgnore LCB entries that migth have been released while queued
Pavlin Radoslavov [Mon, 7 Mar 2016 21:05:23 +0000 (21:05 +0000)]
Ignore LCB entries that migth have been released while queued
am: fb2105f348

* commit 'fb2105f3488e48f2d908b13a33f47e34f6e3f78d':
  Ignore LCB entries that migth have been released while queued

8 years agoIgnore LCB entries that migth have been released while queued
Pavlin Radoslavov [Tue, 1 Mar 2016 21:32:41 +0000 (13:32 -0800)]
Ignore LCB entries that migth have been released while queued

Function btm_send_pending_direct_conn() dequeues tL2C_LCB
entries from the conn_pending_q queue and calls the processing
function.
However, there is the possilility of a race condition
and releasing the entry by l2cu_release_lcb() before it is processed.
Now tL2C_LCB that are not in_use are ignored.

Bug: 27418154
Change-Id: I4b5fda605a60c8aebbf5587bb12dd74ac5d28f68

8 years agoFix build error caused by missing LOG_TAG
Patrick Tsai [Sun, 6 Mar 2016 09:42:19 +0000 (01:42 -0800)]
Fix build error caused by missing LOG_TAG

FAILED: gcc -MMD -MF obj/hci/src/libhci.hci_packet_parser.o.d -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DHAS_NO_BDROID_BUILDCFG -DLOG_NDEBUG=1 -DEXPORT_SYMBOL=__attribute__\(\(visibility\(\"default\"\)\)\) -DKERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE -DOS_GENERIC -I../../hci/include -I../.. -I../../include -I../../bta/include -I../../btcore/include -I../../stack/include -I/home/patrick/src/fluoride/libhardware/include -I/home/patrick/src/fluoride/core/include -I/home/patrick/src/fluoride/media/audio/include -g -O0 -fpic -fdata-sections -ffunction-sections -fvisibility=hidden -std=c99 -c ../../hci/src/hci_packet_parser.c -o obj/hci/src/libhci.hci_packet_parser.o
In file included from ../../hci/src/hci_packet_parser.c:28:0:
../../hci/src/hci_packet_parser.c: In function ‘read_command_complete_header’:
../../hci/src/hci_packet_parser.c:239:43: error: expected ‘)’ before ‘__func__’
     LOG_ERROR("%s: return status - 0x%x", __func__, status);

Change-Id: I6ca721ba24ba3170d701f606f0676c5c4e707cf8

8 years agoAdd missing 'cd third_party' step
Patrick Tsai [Sun, 6 Mar 2016 08:35:09 +0000 (00:35 -0800)]
Add missing 'cd third_party' step

8 years agoUpdate device type in NVRAM correctly during inquiry am: ab7418f58c
Subramanian Srinivasan [Fri, 4 Mar 2016 22:04:28 +0000 (22:04 +0000)]
Update device type in NVRAM correctly during inquiry am: ab7418f58c
am: 68bb3ecf9c

* commit '68bb3ecf9ca7bf59694193e3a8a4b1efe76a47ad':
  Update device type in NVRAM correctly during inquiry

8 years agoUpdate device type in NVRAM correctly during inquiry
Subramanian Srinivasan [Fri, 4 Mar 2016 22:02:25 +0000 (22:02 +0000)]
Update device type in NVRAM correctly during inquiry
am: ab7418f58c

* commit 'ab7418f58c84216d57b7c0d553f09f5748badd82':
  Update device type in NVRAM correctly during inquiry

8 years agoDefault missing DevType and DevClass in NVRAM. am: 3b6ef54cd2
Jacky Cheung [Fri, 4 Mar 2016 22:00:32 +0000 (22:00 +0000)]
Default missing DevType and DevClass in NVRAM. am: 3b6ef54cd2
am: 4b8cdc78d4

* commit '4b8cdc78d4d665dafc7903877cb7c362807ec782':
  Default missing DevType and DevClass in NVRAM.

8 years agoGATT: Initiate L2CAP disconnect only when the channel is open am: bf955cb7e5
venkata Jagadeesh [Fri, 4 Mar 2016 22:00:24 +0000 (22:00 +0000)]
GATT: Initiate L2CAP disconnect only when the channel is open am: bf955cb7e5
am: e65e09f115

* commit 'e65e09f11598af404915111cf3b027c6d5890081':
  GATT: Initiate L2CAP disconnect only when the channel is open

8 years agoUpdate device type in NVRAM correctly during inquiry
Subramanian Srinivasan [Thu, 23 Jul 2015 22:05:05 +0000 (15:05 -0700)]
Update device type in NVRAM correctly during inquiry

If the NVRAM device type for a device is not dual mode and the inquiry
result is received for BLE or BR/EDR transport, then this patch updates
the NVRAM device type to dual mode.

Change-Id: I688e7c5e3bd8d844288d095cb97c2e55ddf652c6

8 years agoDefault missing DevType and DevClass in NVRAM.
Jacky Cheung [Fri, 4 Mar 2016 21:58:32 +0000 (21:58 +0000)]
Default missing DevType and DevClass in NVRAM.
am: 3b6ef54cd2

* commit '3b6ef54cd262da6a41a16dafe361040740024717':
  Default missing DevType and DevClass in NVRAM.

8 years agoGATT: Initiate L2CAP disconnect only when the channel is open
venkata Jagadeesh [Fri, 4 Mar 2016 21:58:28 +0000 (21:58 +0000)]
GATT: Initiate L2CAP disconnect only when the channel is open
am: bf955cb7e5

* commit 'bf955cb7e50e1047452e741effa504c8aefc8a4f':
  GATT: Initiate L2CAP disconnect only when the channel is open

8 years agoDefault missing DevType and DevClass in NVRAM.
Jacky Cheung [Fri, 4 Mar 2016 21:29:02 +0000 (13:29 -0800)]
Default missing DevType and DevClass in NVRAM.

Missing DevType and DevClass in NVRAM were not properly set to a
default values previously.

8 years agoRemove btla-specific comments am: 1be7ae1a08
Jakub Pawlowski [Fri, 4 Mar 2016 21:52:25 +0000 (21:52 +0000)]
Remove btla-specific comments am: 1be7ae1a08
am: a9b36318f2

* commit 'a9b36318f287a1a3ef4a8dc253b4313dadf00721':
  Remove btla-specific comments

8 years agoGATT: Initiate L2CAP disconnect only when the channel is open
venkata Jagadeesh [Thu, 26 Nov 2015 08:44:00 +0000 (14:14 +0530)]
GATT: Initiate L2CAP disconnect only when the channel is open

Use case:
Crash found during L2CAP disconnect from faulty BLE APP.

Steps:
Run SNS testing.

Failure:
Crash during L2CAP disc.

Root cause:
Faulty BLE application triggering GATT disconnection
which internally triggering L2CAP disconnection without checking
proper state of channel.

Fix:
- Initiate L2CAP disconnect only when the channel is open
- Validate LCB during disconnection from upper layers

Change-Id: Ic9d065f095feba659c861828732647e968c20db8

8 years agoRemove btla-specific comments
Jakub Pawlowski [Fri, 4 Mar 2016 21:50:24 +0000 (21:50 +0000)]
Remove btla-specific comments
am: 1be7ae1a08

* commit '1be7ae1a0890380b8a3daebcade0c1f55b04b167':
  Remove btla-specific comments

8 years agoRemove btla-specific comments
Jakub Pawlowski [Fri, 4 Mar 2016 21:20:05 +0000 (13:20 -0800)]
Remove btla-specific comments

Change-Id: I91a19b2cfbc96d7567e0e0914058619ea364c1d4

8 years agoCorrecting sniff behaviour in multi-connection scenario am: 31d1a2b525
Matadeen Mishra [Fri, 4 Mar 2016 19:38:41 +0000 (19:38 +0000)]
Correcting sniff behaviour in multi-connection scenario am: 31d1a2b525
am: 060b3c2007

* commit '060b3c20079e84ee8de4ab44663a4dd3f4fa9be7':
  Correcting sniff behaviour in multi-connection scenario

8 years agoCorrecting sniff behaviour in multi-connection scenario
Matadeen Mishra [Fri, 4 Mar 2016 19:36:09 +0000 (19:36 +0000)]
Correcting sniff behaviour in multi-connection scenario
am: 31d1a2b525

* commit '31d1a2b52507df33f13d19ed2349585dfa490542':
  Correcting sniff behaviour in multi-connection scenario

8 years agoCorrecting sniff behaviour in multi-connection scenario
Matadeen Mishra [Mon, 1 Feb 2016 13:50:54 +0000 (19:20 +0530)]
Correcting sniff behaviour in multi-connection scenario

Use case: When multiple profiles are connected on same link and if any one of the
profiles deregisters with powermanager, powermanager will initiate a sniff when it
removes the timer for one profile, even if a timeout did not trigger for other profiles.

Steps:
1. Turn on BT
2. Pair with Mi band (Wearable device)
3. Pair with carkit
4. Turn off BT
5. Turn on BT
HF and A2DP connection should successful after BT on to carkit.

Failure: HF connection fails.

Root Cause: powermanager initiates a sniff when it removes the timer for one profile
Even if a timeout did not trigger for other profiles.

Fix: When multiple profiles connect on the same link and if any one profile
deregisters with powermanager, pm should stop the timer for that profile
and restart the other profiles timers.

Change-Id: I8e215a9d868291976c70ff32b61145b4360a7f8f

8 years agoCleanup L2CAP socket properly on close am: 9123096530
Srinu Jella [Fri, 4 Mar 2016 19:14:48 +0000 (19:14 +0000)]
Cleanup L2CAP socket properly on close am: 9123096530
am: 1c42c2314b

* commit '1c42c2314ba17f8d7ffce5dc511a245e5acf3627':
  Cleanup L2CAP socket properly on close

8 years agoCleanup L2CAP socket properly on close
Srinu Jella [Fri, 4 Mar 2016 19:12:48 +0000 (19:12 +0000)]
Cleanup L2CAP socket properly on close
am: 9123096530

* commit '91230965304bc323a96ced0527d560aacb606415':
  Cleanup L2CAP socket properly on close

8 years agoCleanup L2CAP socket properly on close
Srinu Jella [Mon, 21 Sep 2015 06:30:48 +0000 (12:00 +0530)]
Cleanup L2CAP socket properly on close

Use case:
1. Sometimes pairing pop up occurs during Android beam
   transfer though it is not required.
2. No OPP Tx request over OBEX if we cancel during file transfer.

Precondition
1. WIFI ON and conneted with AP.

Steps:
1. Pair and connect from DUT to remote.
2. Go to gallery and send a file.
3. Accept same file and stop it from remote during transfer.
4. Repeat step 2-4 10 times.

Failure:
OPP Tx should not fail.

Root cause:
Close request was not properly handled from BT-IF layer.

Fix:
1. Handled the close request properly from BT-IF layer
   to close the socket variables and instruct the BTA layer
   close from there as well.
2. Clean up L2CAP socket properly on closure to free
   the entry registered with security manager to avoid
   leak in security manager records.

Change-Id: I4f5d6ac92317bcaee5f9285ba71d13eea84c737c

8 years agoGAP Setting remove device pending status as FALSE am: 9412bbaea5
Balraj Selvaraj [Fri, 4 Mar 2016 19:04:50 +0000 (19:04 +0000)]
GAP Setting remove device pending status as FALSE am: 9412bbaea5
am: d58b657e22

* commit 'd58b657e22dc3aa5facfaff8524e950665c71985':
  GAP Setting remove device pending status as FALSE

8 years agoGAP Setting remove device pending status as FALSE
Balraj Selvaraj [Fri, 4 Mar 2016 19:02:47 +0000 (19:02 +0000)]
GAP Setting remove device pending status as FALSE
am: 9412bbaea5

* commit '9412bbaea51f577d903e060b8c8214fbd28b0b4f':
  GAP Setting remove device pending status as FALSE

8 years agoGAP Setting remove device pending status as FALSE
Balraj Selvaraj [Thu, 11 Feb 2016 08:16:02 +0000 (13:46 +0530)]
GAP Setting remove device pending status as FALSE

Use case: DUT deletes Link key and failed to initiate
  authentication request after remote headset turned Off and ON

steps:
- Pair the DUT and HS. (Link Keys get established.)
- Now Switch OFF BT on DUT. (DUT still has the Link key of HS)
- Reset the paired devices memory in HS and keep HS in
  pairing mode. (HS loses DUT's link key)
- Now switch ON BT on DUT. (DUT starts reconnection with HS,
  but as HS lost DUT's key, PIN or KEY missing event will
  come to host)
- DUT reconnects to HS (Using newly established link keys)
- Now power OFF and ON the HS.
- HS will try reconnection with DUT.
- While there is an incoming connection from HS to DUT,
  host is giving negative link key reply always for the
  multiple link key requests from HS.
- HS sends disconnection with "Authentication failure"

Failure: DUT should not delete Link key and DUT should
  initiate Authenticatin request.

Root cause: pending status was not FALSE from security device
  DB, which will causing Authentication Failure.

Fix: Setting the remove device pending status to FALSE from
  security device DB, when the link key notification event
  comes. Basically it will avoid deleting the device from
  security device DB, Which is solving the reconnection
  initated from remote when we remove the link key at
  remote side.

Change-Id: Ic164d8d5b5c2e0b9cc5f04f993047fb0a8e5d9a9

8 years agoTrack TX empty event to manage sniff timer am: 4e972d8c24
Srinu Jella [Fri, 4 Mar 2016 18:50:22 +0000 (18:50 +0000)]
Track TX empty event to manage sniff timer am: 4e972d8c24
am: 09f045bdbc

* commit '09f045bdbcc1d36abc73bd8ec882b13c03c2226e':
  Track TX empty event to manage sniff timer

8 years agoTrack TX empty event to manage sniff timer
Srinu Jella [Fri, 4 Mar 2016 18:48:22 +0000 (18:48 +0000)]
Track TX empty event to manage sniff timer
am: 4e972d8c24

* commit '4e972d8c24ecfb808757ef5c81eb3877ebc93027':
  Track TX empty event to manage sniff timer

8 years agoTrack TX empty event to manage sniff timer
Srinu Jella [Tue, 16 Feb 2016 14:52:16 +0000 (20:22 +0530)]
Track TX empty event to manage sniff timer

Use case:
OPP TX while inquiry is in progress.

Steps:
1. Send any file from DUT to remote using BT.
2. Accept file on remote.
3. During file transfer, start inquiry on DUT and
   observe behaviour.

Failure:
DUT sends sniff command in the middle of the transfer
though it is not required. eventually OPP Tx over
L2CAP file transfer fail.

Root Cause:
As per the current implementation, for tx it will
immediately starts idle timer without checking
for the completion status of tx.

Fix:
Handled the tx complete event from L2CAP properly
to start the idle timer to manage the sniff properly.

Change-Id: I298075590042e82a2f33837f6df6af0b2fd8179a

8 years agoRead local supported codecs as part of boot sequence am: f6dcf79f62
Srinu Jella [Fri, 4 Mar 2016 18:38:35 +0000 (18:38 +0000)]
Read local supported codecs as part of boot sequence am: f6dcf79f62
am: 99a2b14ab4

* commit '99a2b14ab44b388499b0d084265c8b4a21caac39':
  Read local supported codecs as part of boot sequence

8 years agoRead local supported codecs as part of boot sequence
Srinu Jella [Fri, 4 Mar 2016 18:36:36 +0000 (18:36 +0000)]
Read local supported codecs as part of boot sequence
am: f6dcf79f62

* commit 'f6dcf79f62880e716e127b19c70ea328e07c6051':
  Read local supported codecs as part of boot sequence

8 years agoRead local supported codecs as part of boot sequence
Srinu Jella [Wed, 22 Jul 2015 12:00:32 +0000 (17:30 +0530)]
Read local supported codecs as part of boot sequence

Add support to read local supported codecs as part of
controller module initialization.

Also added an API from controller interface to get the
local supported codecs.

Change-Id: I37a4ab9e6a20ed057ca794dbdd4f99c2a8c65a6e

8 years agoAdded fd for monitoring when the channel is not congested am: 7baa1e1792
Srinu Jella [Fri, 4 Mar 2016 18:28:33 +0000 (18:28 +0000)]
Added fd for monitoring when the channel is not congested am: 7baa1e1792
am: 3cc1abb802

* commit '3cc1abb8029acabfe81ee109e95b16365f609577':
  Added fd for monitoring when the channel is not congested

8 years agoAdded fd for monitoring when the channel is not congested
Srinu Jella [Fri, 4 Mar 2016 18:26:34 +0000 (18:26 +0000)]
Added fd for monitoring when the channel is not congested
am: 7baa1e1792

* commit '7baa1e17924cdac702ab9d8146a966fbd26c8d50':
  Added fd for monitoring when the channel is not congested

8 years agoAdded fd for monitoring when the channel is not congested
Srinu Jella [Tue, 11 Aug 2015 13:46:52 +0000 (19:16 +0530)]
Added fd for monitoring when the channel is not congested

Use case:
Skips and Media Audio Loss are Observed During PAN Connection

Steps:
1. Launched Local Music and Media Audio was in Headset.
2. Paired and Connected to other Phone to DUT Over BT Tethering.
3. While  Listening to Media Audio in DUT, Started Watching
   Youtube in other phone.
4. Observed Below Observations During Some 30mins of PAN Connection.

Failure:
Skips and Media Audio Loss are Observed During PAN Connection

Root Cause:
socket monitor thread keeps polling for PAN fd, eventually
it will make the BTU thread also busy, inturn NOCP processing
gets delayed.

Fix:
Add PAN fd for monitoring only when L2CAP channel related to
PAN profile is not congested. It will break loop by checking the
congestion status to put the fd for polling.

Change-Id: I2119c6c86d8e4798e516c512ad7aac7630b85a6a

8 years agoMerge "Shorten local name in EIR data according to UTF encoding rules" am: a9644b77b7
Matadeen Mishra [Fri, 4 Mar 2016 18:16:21 +0000 (18:16 +0000)]
Merge "Shorten local name in EIR data according to UTF encoding rules" am: a9644b77b7
am: ea75e89bbd

* commit 'ea75e89bbd89bc4367a599d8c033ce4cafde03d9':
  Shorten local name in EIR data according to UTF encoding rules

8 years agoMerge "Shorten local name in EIR data according to UTF encoding rules"
Matadeen Mishra [Fri, 4 Mar 2016 18:14:22 +0000 (18:14 +0000)]
Merge "Shorten local name in EIR data according to UTF encoding rules"
am: a9644b77b7

* commit 'a9644b77b7959fef0b58410230930317575d0668':
  Shorten local name in EIR data according to UTF encoding rules

8 years agoMerge "Shorten local name in EIR data according to UTF encoding rules"
Andre Eisenbach [Fri, 4 Mar 2016 18:08:00 +0000 (18:08 +0000)]
Merge "Shorten local name in EIR data according to UTF encoding rules"

8 years agoHID: Handle collisions during incoming and outgoing connections am: 891723a428
Hemant Gupta [Fri, 4 Mar 2016 17:46:00 +0000 (17:46 +0000)]
HID: Handle collisions during incoming and outgoing connections am: 891723a428
am: 852ab5f88b

* commit '852ab5f88b8c67d79fab181fd3a1d0de724ffefb':
  HID: Handle collisions during incoming and outgoing connections

8 years agoHID: Handle collisions during incoming and outgoing connections
Hemant Gupta [Fri, 4 Mar 2016 17:44:01 +0000 (17:44 +0000)]
HID: Handle collisions during incoming and outgoing connections
am: 891723a428

* commit '891723a42851285ec7e6c2f616a405611789da6b':
  HID: Handle collisions during incoming and outgoing connections

8 years agoHID: Reset outgoing connection retry to 1 am: b7d4613b3c
Hemant Gupta [Fri, 4 Mar 2016 17:39:41 +0000 (17:39 +0000)]
HID: Reset outgoing connection retry to 1 am: b7d4613b3c
am: 95d3d43169

* commit '95d3d431693134fc4ff71aa1ce7f7a9086964b74':
  HID: Reset outgoing connection retry to 1

8 years agoHID: Handle collisions during incoming and outgoing connections
Hemant Gupta [Fri, 11 Dec 2015 14:39:22 +0000 (20:09 +0530)]
HID: Handle collisions during incoming and outgoing connections

- This patch handles cases when incoming HID connection is in progress, and
  there is an outgoing connection attempt from upper layers. This was leading
  to a case when ougoing connection would fail as connection was already in
  progress, which triggered cleanup of connection states, which was not proper
  leading to issues in future connection attempts, as disconnection during
  ongoing connection was not handled properly in existing code.

- Reset the incoming flags during open failure to prevent any possible issues
  during further outgoing connections.

Change-Id: I6fb0c6156482d2da41ca0d2d280091d73c27f292