OSDN Git Service
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
Andre Eisenbach [Tue, 22 Mar 2016 02:55:32 +0000 (02:55 +0000)]
Merge changes from topic 'bug-
27455533-to-nyc-dev-merge-1' into nyc-dev
* changes:
Remove bta_gattc_id2handle
Use attribute handle instead of id in GATT cache
HID multi-device refactoring
GATT cache storage refactoring
Remove dead methods and callbacks
Simplify UUID handling in GATT cache
Pavlin Radoslavov [Fri, 18 Mar 2016 08:02:45 +0000 (01:02 -0700)]
Cleanup after p_mcb if L2CA_ConnectReq() failed
If L2CA_ConnectReq() failed, make sure that
we cleanup the lcid cache state after the
affected p_mcb.
Also, extra check and a log message inside function
rfc_check_send_cmd().
Bug:
27334916
Change-Id: Ib2950d12ce456d74355f4bcc0e3c4d87603f8f91
Pavlin Radoslavov [Mon, 21 Mar 2016 23:35:41 +0000 (16:35 -0700)]
Add missing initialization of queue btm_cb.sec_pending_q
Bug:
27763878
Change-Id: I93001a679e22b744c3feafda1997e5f7e707db4e
Ajay Panicker [Mon, 21 Mar 2016 18:23:09 +0000 (11:23 -0700)]
Add config source to dumpsys output
This logs where the config file was loaded from in the Bluetooth
Manager dumpsys output.
Bug:
27354612
Change-Id: I50d4aaa0be4f4d1d890580b03742713f4345c80f
Andre Eisenbach [Fri, 18 Mar 2016 09:09:58 +0000 (02:09 -0700)]
Do not leak eventfd's for RFCOMM/AVDT/L2CAP
Various users of fixed_queue's do not free the lists properly after
using them. As a result two event fd's leak for each fixed_queue that
is not free'd, as fixed_queue contains two semaphores.
This can lead to run-away file descriptor allocation and an eventual
hard limit leading to various undefined behaviours.
Bug:
27731859
Change-Id: If9ce64b711083bf474d217aa537220065722ad3a
Andre Eisenbach [Thu, 17 Mar 2016 23:51:36 +0000 (16:51 -0700)]
Log error code on wakelock acquisition/release failure
Bug:
27721443
Change-Id: I8ac9e738d916bfdcf125e33c0e09f90cc8d26d55
Glenn Kasten [Thu, 17 Mar 2016 14:22:50 +0000 (14:22 +0000)]
Merge "Use audio_session_t consistently" into nyc-dev
Marie Janssen [Wed, 9 Mar 2016 23:31:48 +0000 (15:31 -0800)]
DO NOT MERGE Check size of pin before replying
If a malicious client set a pin that was too long it would overflow
the pin code memory.
Bug:
27411268
Change-Id: I9197ac6fdaa92a4799dacb6364e04671a39450cc
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
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
Glenn Kasten [Tue, 8 Mar 2016 20:12:33 +0000 (12:12 -0800)]
Use audio_session_t consistently
Bug:
27562099
Change-Id: I10780c8bfc84af568795a2c15557020fbe89a1c4
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
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
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
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
Jakub Pawlowski [Mon, 29 Feb 2016 21:23:04 +0000 (13:23 -0800)]
Remove dead methods and callbacks
Bug:
27455533
Change-Id: Ie5661577320810468dd635022027a1e1a2f70a3e
Jakub Pawlowski [Thu, 3 Mar 2016 04:01:30 +0000 (20:01 -0800)]
Simplify UUID handling in GATT cache
Bug:
27455533
Change-Id: I653b563d3b3c233ffe31b0a35d396a66db363459
Dimitry Ivanov [Tue, 8 Mar 2016 19:32:56 +0000 (11:32 -0800)]
Fix the build
Change-Id: Ib226f087a76ddd426e40f4d6d94f2ed758660c36
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
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
Pavlin Radoslavov [Thu, 3 Mar 2016 21:16:45 +0000 (13:16 -0800)]
Remove MCB from mapping table when entry is released
Explicitly remove MCB entry from the LCB mapping table when
the entry is released.
Bug:
27334916
Change-Id: I14e3f1f5eeffa33e733c4a116d0a70cd7c06753f
Chaojing Sun [Sat, 6 Feb 2016 01:25:47 +0000 (17:25 -0800)]
Fix Dell LE keyboard connection issue
Fixes a connection issue where Dell keyboards do not remain connected
immediately after pairing by removing the gatt_config_ccc_complete()
call in gatt_cl_op_cmpl_cback().
Bug:
27385897
Change-Id: Iee342975dce9fdcd5dcf8f9d459f74fe13d02531
Prashant Malani [Fri, 26 Feb 2016 02:26:13 +0000 (18:26 -0800)]
Fix miscellaneous compilation errors
- Move variables within #defines to avoid unused errors.
- Place #define's correctly to avoid unused function errors.
- Correct parameter passed into a function.
Bug:
27336841
Change-Id: I7c2ab24b3bd3725d126c90483473af83b88687a2
Ajay Panicker [Tue, 1 Mar 2016 00:44:28 +0000 (16:44 -0800)]
Btsnooz doesn't find snooplog sometimes
In the bugreport in b/
27274486 comment #11, the line indicating the
beginning of BTSNOOP LOGS was slightly indented thus causing btsnooz
to not find the beginning of the log.
Bug:
27419027
Change-Id: I3b88e6a3f6f2d6c4d3cbbadb0a93cbd7965f56c8
Pavlin Radoslavov [Tue, 1 Mar 2016 20:50:26 +0000 (12:50 -0800)]
Fix l2cu_initialize_fixed_ccb() to return only initialized entries
Update the l2cu_initialize_fixed_ccb() implementation so
it returns only entries that are properly initialized.
In some complex scenarios, the p_lcb->p_fixed_ccbs[] array
might contain an entry that has been released by l2cu_release_ccb(),
and such entry cannot be reused as-is.
Bug:
26927945
Change-Id: I42d42926cc6da6b8be662781545753c36b75968e
Pavlin Radoslavov [Tue, 1 Mar 2016 18:08:06 +0000 (10:08 -0800)]
Reset queue pointer to NULL after fixed_queue_free()
Add missing reset of queue pointers to NULL affter
fixed_queue_free() calls.
Bug:
26742590
Change-Id: Ib9035d58c0f98a47ce2935e073c6f288ae03ac92
Andre Eisenbach [Sat, 27 Feb 2016 05:45:27 +0000 (21:45 -0800)]
Ensure inquiry is always stopped before service discovery
Service discovery cannot be initiated when the dm search state machine
is not in idle state. This patch ensures that service discovery is
always cancelled regardless of the current state of inquiry.
Bug:
27368986
Change-Id: Ib83d4c8d389e50a1c65e52b343f4996455747836
Andre Eisenbach [Fri, 26 Feb 2016 04:23:38 +0000 (04:23 +0000)]
Merge "Swapped memset params" into nyc-dev
Pavlin Radoslavov [Thu, 25 Feb 2016 20:53:45 +0000 (12:53 -0800)]
Fix a crash triggered when firmware config takes too long
Fix a crash condition that is triggered when the firmware
configuration takes too long:
1. The startup_timer expires, and it resets startup_future to NULL
2. The delayed firmware_config_callback is received, and it
tries to use the startup_future pointer (already set to NULL).
[Cherry-pick from AOSP]
Bug:
27336555
Change-Id: I4b04ca08a32c947f6f1eaabec7c4b099f96aab59
Edward Savage-Jones [Wed, 24 Feb 2016 23:44:51 +0000 (00:44 +0100)]
Swapped memset params
Incorrect usage of memset
Bug:
27358983
Change-Id: I7d96c560c4b462c2794b63eb66c7272b1280ba23
Ajay Panicker [Thu, 18 Feb 2016 20:24:10 +0000 (12:24 -0800)]
Protect metrics API from race conditions
Bug:
27315491
Change-Id: If57f7c23c94890e5f1cf196d2ec7a2a667b48cec
Ajay Panicker [Mon, 22 Feb 2016 20:14:04 +0000 (12:14 -0800)]
Alarm Dump output cleanup
Before:
Alarm : btm_ble.adv_raddr_timer (SINGLE)
Action counts (sched/resched/exec/cancel) : 1 / 0 / 0 / 0
Deviation counts (overdue/premature) : 0 / 0
Time in ms (since creation/interval/remaining) : 17824 / 900000 / 882176
Callback execution time in ms (total/max/ave) : 0 / 0 / 0
Overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
After:
Alarm : btm_ble.adv_raddr_timer (SINGLE)
Action counts (sched/resched/exec/cancel : 1 / 0 / 0 / 0
Deviation counts (overdue/premature) : 0 / 0
Time in ms (since creation/interval/remaining) : 88268 / 900000 / 811732
Callback execution time in ms (total/max/avg) : 0 / 0 / 0
Overdue scheduling time in ms (total/max/avg) : 0 / 0 / 0
Premature scheduling time in ms (total/max/avg): 0 / 0 / 0
Bug:
27294154
Change-Id: I0e318ef570a591626fbc6443feace1cc99c06baf
Ajay Panicker [Mon, 22 Feb 2016 19:05:04 +0000 (11:05 -0800)]
Clean A2DP dump output
Before:
TxQueue:
Counts (enqueue/dequeue/readbuf) : 0 / 0 / 0
Last update time ago in ms (enqueue/dequeue/readbuf) : 0 / 0 / 0
Frames per packet (total/max/ave) : 0 / 0 / 0
Counts (flushed/dropped/dropouts) : 0 / 0 / 0
Last update time ago in ms (flushed/dropped) : 0 / 0
Counts (underflow/underrun) : 0 / 0
Bytes (underflow/underrun) : 0 / 0
Last update time ago in ms (underflow/underrun) : 0 / 0
Enqueue deviation counts (overdue/premature) : 0 / 0
Enqueue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Enqueue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue deviation counts (overdue/premature) : 0 / 0
Dequeue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
After:
TxQueue:
Counts (enqueue/dequeue/readbuf) : 0 / 0 / 0
Last update time ago in ms (enqueue/dequeue/readbuf) : 0 / 0 / 0
Frames per packet (total/max/ave) : 0 / 0 / 0
Counts (flushed/dropped/dropouts) : 0 / 0 / 0
Last update time ago in ms (flushed/dropped) : 0 / 0
Counts (underflow/underrun) : 0 / 0
Bytes (underflow/underrun) : 0 / 0
Last update time ago in ms (underflow/underrun) : 0 / 0
Enqueue deviation counts (overdue/premature) : 0 / 0
Enqueue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Enqueue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue deviation counts (overdue/premature) : 0 / 0
Dequeue overdue scheduling time in ms (total/max/ave) : 0 / 0 / 0
Dequeue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
Bug:
27294154
Change-Id: I2952ceed7b02db0d8497b67de0f57e4f9128e5bf
Ajay Panicker [Wed, 24 Feb 2016 19:45:56 +0000 (11:45 -0800)]
Remove extra newline before Btsnoop log summary
Bug:
27294154
Change-Id: Ice69835cdddfc01e2222a47b0ceeb30d243442f5
Ajay Panicker [Fri, 19 Feb 2016 00:33:07 +0000 (16:33 -0800)]
Clean up bond event dump printout
Bug:
27294154
Change-Id: I0b7e5a9dda30875c9fc877baffa0daac9184cd42
Jakub Pawlowski [Tue, 23 Feb 2016 23:27:47 +0000 (15:27 -0800)]
Make wakelock compile on Linux
This patch adds some missing header files that prevented wakelocks
from compiling on linux.
Bug:
27324453
Change-Id: Ifabf3350fe840524cf7e1ec7aa2825acb4399c81
Jakub Pawlowski [Tue, 23 Feb 2016 22:32:49 +0000 (14:32 -0800)]
Add missing log tag in config_clear()
Bug:
27324453
Change-Id: Icebf0273c39040ff6b1bb29dcc4d0a827e25b4a8
Jakub Pawlowski [Tue, 23 Feb 2016 22:58:43 +0000 (14:58 -0800)]
Get rid of counter
This patch removes counter. We were never using those values,
except for increasing them.
Bug:
27324326
Change-Id: I3122a36fa0435a36a8401792267cb5ebff5ab269
Pavlin Radoslavov [Wed, 17 Feb 2016 02:16:59 +0000 (18:16 -0800)]
Replace usage of HCI_GET_CMD_BUF() with osi_malloc()
* Remove HCI_GET_CMD_BUF() wrapper macro, and replace it with
its default implementation: (BT_HDR *)osi_malloc(HCI_CMD_BUF_SIZE)
* Remove explicit checks for NULL when HCI_GET_CMD_BUF() was used.
[Cherry-picked from AOSP/master]
Bug:
27048759
Change-Id: I7c71b408f40d58f6ebf3a310aa806daba3342f77
Pavlin Radoslavov [Fri, 19 Feb 2016 04:51:58 +0000 (20:51 -0800)]
Removed unused defines from bt_target.h
Removed unused conditional defines from bt_target.h that
are not needed anymore.
[Cherry-picked from AOSP/master]
Change-Id: Ic424f673332668b21db11d323b389f5a5f4fba81
Andre Eisenbach [Fri, 19 Feb 2016 01:36:03 +0000 (17:36 -0800)]
Revert "Pick proper addres type for unknown devices"
This reverts commit
0ec558b58d55eb05f2b42bc29a6c1c93786ac090.
Andre Eisenbach [Fri, 19 Feb 2016 01:27:18 +0000 (17:27 -0800)]
Revert "Fix data reporting state when using HID device"
Original commit breaks Fugu remote (amongst other things).
This reverts commit
44efbb13a748a276de994456cffc02e8e9da03b0.
Change-Id: Ifa4ab421e0b14f59988d2e3ac7f338f0844aaa2d
Ajay Panicker [Thu, 18 Feb 2016 02:18:00 +0000 (18:18 -0800)]
Write Protobuf in Base64
Change-Id: I3868365e7fd166517b13ff03a15d629271bd47b4
Pavlin Radoslavov [Wed, 17 Feb 2016 18:20:12 +0000 (10:20 -0800)]
Fix ParcelHelpersTest.ScanResult unit test
Fix a failing unit test that was broken by some
earlier cleanup work.
Bug:
26879229
Bug:
27152031
Change-Id: I244d078a23a69c82fbc7cb4468649ab933131977
Pavlin Radoslavov [Wed, 17 Feb 2016 23:42:38 +0000 (15:42 -0800)]
Add support for collecting A2DP Protobuf metrics
* Add new function metrics_a2dp_session() to
connect A2DP metrics into Protobuf
* Add new function btif_update_a2dp_metrics()
that is called when the metrics should be
callected
* Add few more statistics to the BTIF media stats.
Change-Id: I5862ac82e55b3546dc1fbde0c78cb4683e40d19e
Andre Eisenbach [Wed, 17 Feb 2016 20:43:12 +0000 (12:43 -0800)]
Instrument and fix calls to strncmp()
Bug:
27222508
Change-Id: I0075b4480aff52dcdc326b7bdb7154ca919ccee9
Jaganath Kanakkassery [Wed, 6 Jan 2016 07:27:51 +0000 (15:27 +0800)]
Suspend properly when receiving events without response
In the BTU handler for messages from the controller, rn event may be
received that the stack does not have to respond to. In this case, the
stack should go to sleep.
This patch calls the provided function in the BTU to enter sleep.
Signed-off-by: Jaganath Kanakkassery <jaganathx.kanakkassery@intel.com>
Signed-off-by: Yingkai Cheng <yingkaix.cheng@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
Change-Id: Ie7c3fcae418eb2480338509e86b7cc870177a965
Ajay Panicker [Sat, 6 Feb 2016 00:50:20 +0000 (16:50 -0800)]
Additional logging for bond information
Log the bond state, the funciton that updated the bond state, as well as the
device that was updated. Also added in functionality for protobuff logging.
Example output
Bond Events:
Total Number of events: 8
Time BD_ADDR Function State
00:01:12.353 ac:9e:17:07:58:d8 btif_dm_create_bond BOND_STATE_NONE
00:01:12.354 ac:9e:17:07:58:d8 bond_state_changed BOND_STATE_BONDING
00:01:13.999 ac:9e:17:07:58:d8 bond_state_changed BOND_STATE_BONDING
00:01:14.778 ac:9e:17:07:58:d8 bond_state_changed BOND_STATE_BONDED
00:01:14.827 ac:9e:17:07:58:d8 bond_state_changed BOND_STATE_BONDED
00:01:31.534 34:36:3b:c4:bf:99 btif_dm_create_bond BOND_STATE_NONE
00:01:31.535 34:36:3b:c4:bf:99 bond_state_changed BOND_STATE_BONDING
00:01:32.771 34:36:3b:c4:bf:99 bond_state_changed BOND_STATE_BONDING
Change-Id: I01ab3a232300203704a356a17aa045e638f97463
Loic Poulain [Fri, 18 Dec 2015 01:35:07 +0000 (02:35 +0100)]
Fix data reporting state when using HID device
Start and Stop are called on HID driver probe/unprobe.
Open/Close are called when driver is interesed/not-interested
in data reports, typically when user-space open/close the input
device. So we can have several open/close calls for one start/stop
cycle.
https://www.kernel.org/doc/Documentation/hid/hid-transport.txt
Problem is that current implementation disables data reporting on close
but never enables it on open. This patch fixes this issue to match the
expected behavior.
Change-Id: Id5d4627dba389338b06df60a6e1d993ac3e3e5ec
Signed-off-by: Loic Poulain <loic.poulain@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
Jakub Pawlowski [Thu, 11 Feb 2016 19:34:38 +0000 (11:34 -0800)]
service: Use built-in byte vector parser
Change-Id: I72369c0b7678338fc8ccf520b59a95affdfd2994
Andre Eisenbach [Tue, 16 Feb 2016 01:50:11 +0000 (17:50 -0800)]
Remove the need for -Wno-constant-logical-operand
Change-Id: Iea44eeed487df3236d9b482b7e5bbc92f7f46797
Andre Eisenbach [Thu, 4 Feb 2016 21:19:32 +0000 (13:19 -0800)]
Remove Porsche car-kit pairing workaround
Bug:
26551752
Change-Id: I14c5e3fcda0849874c8a94e48aeb7d09585617e1
Andre Eisenbach [Tue, 16 Feb 2016 00:38:36 +0000 (16:38 -0800)]
Fix compile error due to interop_feature_t not being public
Change-Id: I3c6d2d28d98098aea1854ebd2726fdaac9cc14e9
Andre Eisenbach [Mon, 15 Feb 2016 22:51:07 +0000 (14:51 -0800)]
Add new HAL functions to fake Bluetooth interface
Change-Id: I5b2b5a495ea14fd743885c4061a6bcd3e7c39c23
Andre Eisenbach [Thu, 14 Jan 2016 10:00:24 +0000 (02:00 -0800)]
Add ability to add interop entries dynamically (2/2)
Add ability and interface for adding dynamic entries to the interop
workaround database.
Bug:
26548845
Change-Id: Id886e4233fc1548727e79f1581cdc0c6f0738d59
Pavlin Radoslavov [Mon, 15 Feb 2016 19:47:37 +0000 (11:47 -0800)]
Fix compilation warnings/errors on fugu
Fix compilation warnings/errors on fugu about unused
variables.
Change-Id: Ib68097122f27c631ab36b71a6815d4e1f3b60558
Pavlin Radoslavov [Sat, 13 Feb 2016 16:47:19 +0000 (08:47 -0800)]
Fix C/C++ compiler generated warnings
* Remove unused functions: -Wno-unused-function
* Fix logical operations that are missing parentheses:
-Wno-logical-not-parentheses, -Wno-parentheses
* Add missing braces in initializers: -Wno-missing-braces
* Remove unused variables: -Wno-unused-variable
* Fix printf()-like formatting issues: -Wno-format
* Avoid using unitialized variables:
-Wno-maybe-uninitialized, -Wno-uninitialized
* Fix a bug inside bta_gattc_get_gatt_db_impl()
when the processed GATT DB attribute type is unknown.
* Fix warnings about missing field initializers:
-Wno-missing-field-initializers
* Re-implement macro COMPILE_ASSERT(COND) to fix a compilation warning:
-Wno-non-literal-null-conversion
* Fix sign mismatch comparison warnings:
-Wno-sign-compare
* Fix warnings related to enum conversion:
-Wno-enum-conversion
* Fix warnings related to incompatible pointer types:
-Wno-incompatible-pointer-types
* Fix warnings related to enum conversion:
-Wno-enum-conversion
Bug:
26879229
Change-Id: I522931fe156aeab23ae841051a9e25ceab00b1c2
Jakub Pawlowski [Thu, 11 Feb 2016 17:05:14 +0000 (09:05 -0800)]
service: Add services removed/added handlers
Change-Id: Ida3f232b4e77bfb95dec78ea4af7677c9c12b411
Pavlin Radoslavov [Fri, 12 Feb 2016 03:44:47 +0000 (19:44 -0800)]
Cleanup C and C++ compiler flags
Cleanup the setting of C and C++ compiler flags:
* (Almost) all compiler flags are set uniformly
in the system/bt/Android.mk file.
* Enable by default breaking the compilation if there is a
compilation warning: -Werror
* Enable most compilation warnings: -Wall -Wextra
* Renamed Android.mk related flags:
- bdroid_C_INCLUDES -> bluetooth_C_INCLUDES
- bdroid_CFLAGS -> bluetooth_CFLAGS
* Introduce variables for C-only and C++ only compiler:
- bluetooth_CFLAGS: common C and C++ compiler flags
- bluetooth_CONLYFLAGS: C only compiler flags
- bluetooth_CPPFLAGS: C++ only compiler flags
* Disable warnings for existing issues - to be removed as issues are
resolved
* Add a workaround for libchrome and -DNDEBUG usage.
Bug:
26879229
Change-Id: Ie7595965ca0c8ead0e95e983e76c327e7891b2c3
Jakub Pawlowski [Fri, 12 Feb 2016 23:15:52 +0000 (15:15 -0800)]
Pick proper addres type for unknown devices
Change-Id: I46641d0fe065b5e5a6620dc34c770429ac8dbe11
Jakub Pawlowski [Fri, 12 Feb 2016 18:35:01 +0000 (10:35 -0800)]
Fix discovery status handling
This typo was introduced in commit
48db2d25 3years ago.
This cause unnecesary purge of cache and rediscovery even though
discovery was successfull.
Change-Id: I828e148ad489af1e231d33d7807bbe0e46f445c5
Subramanian Srinivasan [Tue, 2 Feb 2016 00:21:10 +0000 (16:21 -0800)]
Validates the PDU length of GATT Prepare Write attribute requests
Validates whether the PDU length of GATT Prepare Write
requests satisfy the minimum length requirements of
GATT write attribute request format.
Change-Id: Id18d32b050389ff8c71341bb738dd77225029acd
Ajay Panicker [Thu, 11 Feb 2016 20:33:30 +0000 (12:33 -0800)]
Create backup for bt_config.conf
Move current config file to a backup when a new config file is
saved. This backup can be used in case there is an error loading
the current config file.
Change-Id: Icc210c457dc71a72fc2e82ff72c91207b25deaf1
Ajay Panicker [Wed, 10 Feb 2016 01:35:49 +0000 (17:35 -0800)]
Removed function bte_load_ble_conf
The functionality provided by this function is not needed anymore.
Change-Id: I59696c7a7e1d7ddb095f3a450f58ce1db97927b6
Jakub Pawlowski [Wed, 10 Feb 2016 23:26:14 +0000 (15:26 -0800)]
Add handle range to BTA_GATTC_GetGattDb
Change-Id: Iaf0280853278a4f28dde5b952b646096cfb12d97
Pavlin Radoslavov [Sat, 6 Feb 2016 16:36:06 +0000 (08:36 -0800)]
Removed checks for NULL returns after osi_calloc() / osi_malloc()
Removed explicit checks for NULL pointer returns after calls
to osi_calloc() and osi_malloc(), because those are not needed.
If the memory allocation fails, osi_calloc() and osi_malloc()
will trigger an assert.
Bug:
27048759
Change-Id: I2791eb2f69c08f991f8fcdef10e101a41568cd95
Marie Janssen [Wed, 10 Feb 2016 23:36:48 +0000 (15:36 -0800)]
osi: Don't use -std=c99 to compile
Using -std=c99 to compile breaks when we are using C++ files, which
metrics uses for protobufs.
Bug:
27077250
Change-Id: Ie94e3ea5d8b219671329108e7795cdc02ecc38b4
Ajay Panicker [Wed, 10 Feb 2016 01:08:09 +0000 (17:08 -0800)]
Remove code related to legacy config file
Change-Id: Ia82d9bbffcc5df1ec4cddff28d812ca221505ab9
Satya Calloji [Fri, 5 Feb 2016 23:39:07 +0000 (15:39 -0800)]
Add Privacy 1.0/1.1 check for BG connection
Check for privacy 1.0 and 1.1 controller and do not start
background connection, if RPA offloading is not supported,
since it will not connect after change of random address
Bug:
22102400
Change-Id: Ida618f8dc70e0a3860f76f856bb88de8b55b90d7
Marie Janssen [Wed, 3 Feb 2016 02:51:52 +0000 (18:51 -0800)]
binder: fix possible stack corruption
The stack could be corrupted by crafting a IPC call in interesting ways
when a character buffer was passed.
This patch also removes code duplication where these would occur.
Bug:
26917241
Change-Id: Ib6c149a293abf01f31c69a94c8f6dd91d8a2fff2
Jakub Pawlowski [Wed, 10 Feb 2016 17:17:50 +0000 (09:17 -0800)]
Fix possible memory leak
Fix possible memory leak when allocating reused server cache control
block.
Change-Id: I3aab727e4f60e55530f49b0b05ccf2c891c72760
Andre Eisenbach [Mon, 8 Feb 2016 23:37:45 +0000 (15:37 -0800)]
Add Developer menu entry to disable Bluetooth absolute volume
Bug:
27078729
Change-Id: I24ac605c6d02dc3fe3904c441ec416cb66b63168
Pavlin Radoslavov [Fri, 5 Feb 2016 21:54:43 +0000 (13:54 -0800)]
Replaced osi_getbuf()/osi_freebuf() with osi_malloc()/osi_free()
Removed the alternative buffer allocation osi_getbuf() / osi_freebuf()
and use instead osi_malloc() / osi_free().
Correspondingly, replaced usage of osi_freebuf_and_reset()
with osi_free_and_reset().
Bug:
24914560
Change-Id: I7a9599ba7fa900321f087da684428133eb0ddd6b
Jakub Pawlowski [Fri, 5 Feb 2016 07:50:45 +0000 (23:50 -0800)]
Use dynamic memory for keeping GATT cache
Change-Id: I60674c47246d8fe2094fe78ce31b752fa2acb89e
Jakub Pawlowski [Tue, 9 Feb 2016 01:11:55 +0000 (17:11 -0800)]
Add missing "\" at end of line
Change-Id: I6b8a275769387cc731f4bf5ec9ec4d10700fc0ba
Pavlin Radoslavov [Fri, 5 Feb 2016 02:20:06 +0000 (18:20 -0800)]
Removed function osi_get_buf_size()
Refactored code that uses function osi_get_buf_size(), and removed
the need for that function.
Bug:
24914560
Change-Id: I0d002635024a9703acb78f47735aafc957a2b761
Jakub Pawlowski [Mon, 8 Feb 2016 23:21:53 +0000 (15:21 -0800)]
Disable gnu-variable-sized-type-not-at-end warning
This warning is triggered unnecessary in too many places.
It spills through the build log and cause very useful warnings
to stay unnoticed.
Change-Id: Iee75327d05cbece4b9dc9c13005a9bfdf94c0d56
Jakub Pawlowski [Mon, 8 Feb 2016 19:11:25 +0000 (11:11 -0800)]
Add missing log tags
When building for Linux, missing log tags cause errors.
Change-Id: I0b3cda3333c059251b00a25bbfc7e764057286be
Andre Eisenbach [Mon, 8 Feb 2016 19:34:00 +0000 (11:34 -0800)]
Remove BCM_STR* macros
This also fixes very incosistent null termination and various string
length issues.
Bug:
27069905
Change-Id: I527256d224ac5b18e3943d6038b9c912b247676f
Jakub Pawlowski [Fri, 5 Feb 2016 23:48:29 +0000 (15:48 -0800)]
Add list_back_node method to osi list
Change-Id: I919ce97373701cbdea03b8228b3a90263d7ef180
Jakub Pawlowski [Wed, 10 Feb 2016 00:20:41 +0000 (16:20 -0800)]
Fix auto disconnect right after connecting
Bug:
27207638
Change-Id: Ia36cd898c21058b9a3ed56a0d300c3ea8384a5cf
Priti Aghera [Sat, 6 Feb 2016 01:16:42 +0000 (17:16 -0800)]
Set GATT link inactivity timer to 1
GATT_LINK_IDLE_TIMEOUT_WHEN_NO_APP timer was zero. Due to this zero
inactivity timer after the authentication is complete the link is brought
down immediately. Set it to 1 instead.
Bug:
22100369
Change-Id: I6ba4f63b9e48759e4255f230d6bbf426eda31c6f
Sanket Agarwal [Sat, 13 Feb 2016 18:19:45 +0000 (10:19 -0800)]
Remove %s from Log message.
This crashes when A2DP SNK role is executed in print statement.
Change-Id: Iceca09ecc5977a5379d7f98f265fc2d52332c6e4
Marie Janssen [Sat, 16 Jan 2016 00:14:14 +0000 (16:14 -0800)]
osi: add metrics API
Add a metrics API, which supports creating events which are eventually
passed up to the clearcut logging to track pairings and other events.
Connect this to the dumpsys call when it is called.
Change-Id: Idcf75541fd18b0413cc843d6c7e23a5f08a634a5
Chenjie Luo [Mon, 8 Feb 2016 21:20:09 +0000 (21:20 +0000)]
Only initiate codec negotiation if feature is supported am:
ecb3b8386f
am:
879ec51029
* commit '
879ec51029302b25415dc1362f4e6b042cbf4980':
Only initiate codec negotiation if feature is supported
Baligh Uddin [Mon, 8 Feb 2016 21:20:04 +0000 (21:20 +0000)]
Jakub Pawlowski [Sat, 6 Feb 2016 01:04:08 +0000 (01:04 +0000)]
Remove unused return value of bta_gattc_alloc_cache_buf
am:
8a01f77a46
* commit '
8a01f77a46186e04123b78ace6f79f57041a2e5c':
Remove unused return value of bta_gattc_alloc_cache_buf
Jakub Pawlowski [Fri, 5 Feb 2016 01:59:43 +0000 (17:59 -0800)]
Remove unused return value of bta_gattc_alloc_cache_buf
Change-Id: I624aeaa0c562b5c7404ad37411ad209beac3a5e1
Pavlin Radoslavov [Fri, 5 Feb 2016 22:29:42 +0000 (22:29 +0000)]
Suppress some of the Power Management debug log messages
am:
2313c24867
* commit '
2313c24867cf8f1354f6a6867e9817264029f80f':
Suppress some of the Power Management debug log messages
Pavlin Radoslavov [Fri, 7 Aug 2015 02:38:32 +0000 (19:38 -0700)]
Suppress some of the Power Management debug log messages
Suppress some of the Power Management debug log messages that
are printed by default. Some of those messages can be very chatty
if the pairing devices cannot agree on the sniff interval.
For performance reasons, we cannot relax the Nexus Player's
sniff interval, hence those debug log messages shouldn't be
printed by default.
Bug:
22040710
Change-Id: I9a01c7a547b3c592192547e3e6000135ee97d6bf
Pavlin Radoslavov [Fri, 5 Feb 2016 19:33:41 +0000 (19:33 +0000)]
Fix a call to osi_freebuf_and_reset()
am:
ea46bfaeaf
* commit '
ea46bfaeafb9498c8a288b7d2021ac4d333e61a9':
Fix a call to osi_freebuf_and_reset()
Pavlin Radoslavov [Fri, 5 Feb 2016 19:22:12 +0000 (11:22 -0800)]
Fix a call to osi_freebuf_and_reset()
Add missing ampersand in a call to osi_freebuf_and_reset()
Bug:
27038970
Change-Id: Idcbd406a8c790bdddfe1c4fbc0381577bedd8c9c
Jakub Pawlowski [Fri, 5 Feb 2016 01:46:43 +0000 (01:46 +0000)]
Keep sec_dev_rec in list instead of static array
am:
cac784d772
* commit '
cac784d772db7f42dc93acafb18e5d71617c04f3':
Keep sec_dev_rec in list instead of static array
Jakub Pawlowski [Mon, 1 Feb 2016 19:53:36 +0000 (11:53 -0800)]
Keep sec_dev_rec in list instead of static array
This reduces the computational complexity of most BLE operations.
Change-Id: Ife35a50d9ef3467abdc5259c2712bf5d85b8f909
Pavlin Radoslavov [Fri, 5 Feb 2016 00:38:46 +0000 (00:38 +0000)]
Refactor usage of osi_free() and osi_freebuf()
am:
20524d393e
* commit '
20524d393e8b3bea4c573f7980cd843500b0e6a4':
Refactor usage of osi_free() and osi_freebuf()
Pavlin Radoslavov [Wed, 3 Feb 2016 02:12:08 +0000 (18:12 -0800)]
Refactor usage of osi_free() and osi_freebuf()
* Allow to call osi_freebuf(ptr) on NULL pointers. This simplifies
the code: a notable number of "if (foo != NULL)" checks are removed.
* Add new function osi_free_and_reset(p_ptr) that frees the buffer,
and explicitly resets the pointer to NULL.
This prevents unintended usage of free memory.
* Add corresponding function osi_freebuf_and_reset(p_ptr)
* Minor cleanup around usages of osi_free() and osi_freebuf()
Also:
* Removed unused function btif_gattc_cleanup()
* Replaced usage of the following functions with osi_freebuf_and_reset()
- mca_free_buf()
- utl_freebuf()
- btif_hl_free_buf()
* Replaced usage of rc_supported_event_free() with osi_freebuf()
* Replaced usage of btif_hl_get_buf() with osi_getbuf()
* Eliminate some of the osi_get_buf_size() calls
Bug:
22948224
Change-Id: Ife860658b26274da6f228d7353cb0f1531587337
Marie Janssen [Thu, 4 Feb 2016 20:32:40 +0000 (20:32 +0000)]
osi: add native wakelocks to metrics
am:
1910a80f53
* commit '
1910a80f533ece8669e5f62175422365f8abf270':
osi: add native wakelocks to metrics
Marie Janssen [Fri, 29 Jan 2016 21:37:12 +0000 (13:37 -0800)]
osi: add native wakelocks to metrics
Metrics were only being counted for callout wakelocks.
Move metrics collection to the wrapping functions to account more
centrally.
Change-Id: I772198c3ae05bcb83965420931ddee87b1996b6b
Pavlin Radoslavov [Thu, 4 Feb 2016 03:38:11 +0000 (03:38 +0000)]
Fix the processing of AVRCP Rcvd Pass Through messages
am:
f94e67c2d9
* commit '
f94e67c2d96d25f221e0503f334f4a0a277bc68c':
Fix the processing of AVRCP Rcvd Pass Through messages