OSDN Git Service
Ian Pedowitz [Fri, 29 Jan 2016 04:54:36 +0000 (04:54 +0000)]
Merge "Revert "Avoid double memory free and crash during LE discovery or disconnect""
Ian Pedowitz [Fri, 29 Jan 2016 04:36:30 +0000 (04:36 +0000)]
Revert "Avoid double memory free and crash during LE discovery or disconnect"
This reverts commit
12091a323ef84cad10d91fcf6588a6657e591ee0.
(cherry picked from commit
3a4082d7af5c5941769c700d774022a9b982d45c)
Change-Id: I2bc9969a7bd5d434b68ca05a4899a7f52ffb4f3e
Ian Pedowitz [Fri, 29 Jan 2016 04:43:25 +0000 (04:43 +0000)]
Revert "Avoid double memory free and crash during LE discovery or disconnect"
am:
3a4082d7af
* commit '
3a4082d7af5c5941769c700d774022a9b982d45c':
Revert "Avoid double memory free and crash during LE discovery or disconnect"
Ian Pedowitz [Fri, 29 Jan 2016 04:36:30 +0000 (04:36 +0000)]
Revert "Avoid double memory free and crash during LE discovery or disconnect"
This reverts commit
12091a323ef84cad10d91fcf6588a6657e591ee0.
Change-Id: I01deaa5024bfef1782887fd8f8137f83916d8be0
Nitin Arora [Thu, 28 Jan 2016 22:30:01 +0000 (22:30 +0000)]
Avoid double memory free and crash during LE discovery or disconnect
am:
12091a323e
* commit '
12091a323ef84cad10d91fcf6588a6657e591ee0':
Avoid double memory free and crash during LE discovery or disconnect
Nitin Arora [Thu, 28 Jan 2016 01:02:02 +0000 (17:02 -0800)]
Avoid double memory free and crash during LE discovery or disconnect
1. Prevent GATT operations to proceed if queue is not empty
This change returns a FALSE from GATT enqueue operation, in case
there is already a GATT command enqueued. This simple change will
a. Prevent incorrect memory freeing of the currently queued command.
b. Prevent incorrect dequeing of the ongoing command and enqueing
another command which will never be executed.
c. Double free of memory causing segmentation fault
2. Prevent performing pending operations when link is down
This change prevents performing the execution of pending operations
when the link is disconnected. The pending operation in that case
is bound to fail thus freeing the memory pointed to by the p_q_cmd
which is cleaned up again by the discovery completion routine and
thus causing double free.
Bug:
24178843
Change-Id: Ief2756f289a7db73d251ef7e247774dd3f7fc413
Pavlin Radoslavov [Thu, 28 Jan 2016 19:51:12 +0000 (19:51 +0000)]
Add missing include statements
am:
8eea109d26
* commit '
8eea109d265c7c03d80ceb681f05b3604ec939ad':
Add missing include statements
Pavlin Radoslavov [Thu, 28 Jan 2016 19:37:43 +0000 (11:37 -0800)]
Add missing include statements
This fixes "implicit declaration of function ..." warnings/errors.
Change-Id: I07d0f6a60fdb34acef6a11a00f6e528adece150f
Pavlin Radoslavov [Thu, 28 Jan 2016 17:28:53 +0000 (17:28 +0000)]
Added metrics for A2DP transmission queue
am:
ffba52aeef
* commit '
ffba52aeef45451226991d9443c4442a33a7f231':
Added metrics for A2DP transmission queue
Pavlin Radoslavov [Thu, 14 Jan 2016 00:27:01 +0000 (16:27 -0800)]
Added metrics for A2DP transmission queue
Collect and display A2DP metrics related to the A2DP transmission queue.
The result can be displayed by "adb shell dumpsys bluetooth_manager":
A2DP State:
TxQueue:
Counts (enqueue/dequeue/readbuf) : 1767 / 1767 / 3504
Last update time ago in ms (enqueue/dequeue/readbuf) : 3 / 3 / 3
Frames per packet (total/max/ave) : 12210 / 11 / 6
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) : 893 / 871
Enqueue overdue scheduling time in ms (total/max/ave) : 242 / 12 / 0
Enqueue premature scheduling time in ms (total/max/ave) : 842 / 20 / 0
Dequeue deviation counts (overdue/premature) : 869 / 897
Dequeue overdue scheduling time in ms (total/max/ave) : 604 / 11 / 0
Dequeue premature scheduling time in ms (total/max/ave) : 1204 / 19 / 1
Change-Id: I75c8f24a26cf9ce7a4164a142d4ac286ff17f322
Pavlin Radoslavov [Thu, 28 Jan 2016 17:13:06 +0000 (17:13 +0000)]
Fix the calling pattern of the debug dump functions
am:
adca1518b5
* commit '
adca1518b51935a446d968d4c893a4fd46a00621':
Fix the calling pattern of the debug dump functions
Pavlin Radoslavov [Thu, 28 Jan 2016 16:45:46 +0000 (08:45 -0800)]
Fix the calling pattern of the debug dump functions
Group together the calls to the internal foo_dump() functions,
so the output file descriptor is not closed prematurely.
Bug:
26847370
Change-Id: I3afc9502169424081efcc5deae055fbbd91ed5f1
Sharvil Nanavati [Thu, 28 Jan 2016 15:51:05 +0000 (15:51 +0000)]
Merge "Spoof response to AT+CNUM if we don\'t get a reply from the audio gateway."
am:
8113f8cb28
* commit '
8113f8cb28507b08df0645c701b1c47cb491a13a':
Spoof response to AT+CNUM if we don't get a reply from the audio gateway.
Sharvil Nanavati [Thu, 28 Jan 2016 15:51:01 +0000 (15:51 +0000)]
Fix return value for HAL function config_clear.
am:
9ca88af1d9
* commit '
9ca88af1d964c546af1c3dc2c16c4c98071fd5b1':
Fix return value for HAL function config_clear.
Sharvil Nanavati [Thu, 28 Jan 2016 15:48:34 +0000 (15:48 +0000)]
Merge "Spoof response to AT+CNUM if we don't get a reply from the audio gateway."
Sharvil Nanavati [Tue, 26 Jan 2016 21:09:22 +0000 (13:09 -0800)]
Fix return value for HAL function config_clear.
Change-Id: I75712f721f7031705d0accb4ffe89467d52d7aa3
Subramanian Srinivasan [Thu, 28 Jan 2016 15:14:48 +0000 (15:14 +0000)]
Adds null check before freeing LE services list
am:
b83028d142
* commit '
b83028d1422a097e57b829155d42882414c7a1ee':
Adds null check before freeing LE services list
Subramanian Srinivasan [Thu, 28 Jan 2016 15:11:17 +0000 (15:11 +0000)]
Fix compilation errors when SMP_DEBUG flag is enabled
am:
33bab32218
* commit '
33bab322187874ec92f8fe2fbcf4e65c6efca989':
Fix compilation errors when SMP_DEBUG flag is enabled
Subramanian Srinivasan [Fri, 15 Jan 2016 01:45:01 +0000 (17:45 -0800)]
Adds null check before freeing LE services list
Prevents the crash which happens when device is
disconnected during service discovery and the
services list is not yet properly allocated
memory and populated. This change frees up the
services list after discovery complete only when
it is not null.
Change-Id: I0ced14d2ee133a332fa2fd7c456267438813a600
Subramanian Srinivasan [Sat, 9 Jan 2016 01:37:28 +0000 (17:37 -0800)]
Fix compilation errors when SMP_DEBUG flag is enabled
Fix compilation errors in SMP related files when
SMP_DEBUG compile time flag is enabled.
Change-Id: I5593750c27241345beb8e8b9278b045803d3fcc9
Sharvil Nanavati [Wed, 27 Jan 2016 17:43:16 +0000 (09:43 -0800)]
Spoof response to AT+CNUM if we don't get a reply from the audio gateway.
The Huawei Honor 4X CHE1-CL10 phone doesn't reply to AT+CNUM so
we end up disconnecting the service level connection. In this CL,
I'm spoofing an OK response to AT+CNUM in case we time out waiting
for a reply.
Bug:
26504036
Change-Id: I91d5ab4ea91fd67b3f6c6f796c39fd0091bff5cf
Pavlin Radoslavov [Thu, 28 Jan 2016 01:01:04 +0000 (01:01 +0000)]
Allow alarm_cancel() on NULL timers
am:
dd7aaec9e8
* commit '
dd7aaec9e8ccfeee5cd3f3a5caa1cc35d7870bde':
Allow alarm_cancel() on NULL timers
Pavlin Radoslavov [Thu, 28 Jan 2016 00:03:19 +0000 (16:03 -0800)]
Allow alarm_cancel() on NULL timers
Remove an assert that prevents using alarm_cancel() with NULL
timers.
Bug:
26831803
Change-Id: Ifd1476272b13a3f7fd5a0dbb57ee867cbfe2c2bb
Marie Janssen [Wed, 27 Jan 2016 20:49:18 +0000 (20:49 +0000)]
service: Update HAL call for arguments
am:
da35bbce70
* commit '
da35bbce704acff55b9748264106162d33a7ff2a':
service: Update HAL call for arguments
Marie Janssen [Tue, 12 Jan 2016 19:14:24 +0000 (11:14 -0800)]
service: Update HAL call for arguments
The HAL now takes an additional argument for dumpsys arguments.
Change-Id: I286149e4d86ea50c4830a9f6d32e1d57025d01a7
Jakub Pawlowski [Wed, 27 Jan 2016 19:50:51 +0000 (19:50 +0000)]
service: MTU changed callback for GATT server
am:
326b602c15
* commit '
326b602c1571bcc9b49036fa9353f0ed55e6610e':
service: MTU changed callback for GATT server
Jakub Pawlowski [Wed, 27 Jan 2016 19:38:54 +0000 (11:38 -0800)]
service: MTU changed callback for GATT server
Change-Id: I8431e970004f9b96cc40c3a5ca7878815d4d53bb
Jakub Pawlowski [Wed, 27 Jan 2016 16:41:53 +0000 (16:41 +0000)]
service/client: add command to change MTU
am:
756cc4bded
* commit '
756cc4bdedca24e4ba157902a3d0b411cfa109be':
service/client: add command to change MTU
Jakub Pawlowski [Tue, 26 Jan 2016 22:56:21 +0000 (14:56 -0800)]
service/client: add command to change MTU
Change-Id: I096760759991b855efd897adbd6c5aa4e18b26bb
Andre Eisenbach [Wed, 27 Jan 2016 14:58:16 +0000 (14:58 +0000)]
Add explicit sec_act parameter to encryption requests
am:
f40b136e7b
* commit '
f40b136e7b943d7e25224817fc47bb5b171479d5':
Add explicit sec_act parameter to encryption requests
Andre Eisenbach [Wed, 27 Jan 2016 14:58:06 +0000 (14:58 +0000)]
Fix invalid pointer de-reference resulting in a crash
am:
7066f58556
* commit '
7066f585562e2d19fa9bfa6417c895e35ce6739a':
Fix invalid pointer de-reference resulting in a crash
Andre Eisenbach [Tue, 26 Jan 2016 21:29:11 +0000 (13:29 -0800)]
Add explicit sec_act parameter to encryption requests
This avoids de-referencing a potentially NULL pointer (p_ref_data) and
also makes the use of the parameter more obvious.
Also added NULL check before invoking security callback.
Bug:
26792899
Change-Id: I6613c9c2706f1d460ab39421a967d79c59ad0fde
Andre Eisenbach [Tue, 26 Jan 2016 19:19:16 +0000 (11:19 -0800)]
Fix invalid pointer de-reference resulting in a crash
Bug:
26792899
Change-Id: I0c9a22ef1574e6214c108a4b247cf24e26f71ee9
Jakub Pawlowski [Wed, 27 Jan 2016 14:24:01 +0000 (14:24 +0000)]
service: add SetMtu and OnMtuChanged
am:
a6551079fe
* commit '
a6551079fe71b1c76505ada0e4f758f6faf651e0':
service: add SetMtu and OnMtuChanged
Jakub Pawlowski [Tue, 26 Jan 2016 20:58:47 +0000 (12:58 -0800)]
service: add SetMtu and OnMtuChanged
Change-Id: I7a6c6cb46f4710b5d2c57b9d0e9cfac166d7cd62
Dan Willemsen [Wed, 27 Jan 2016 00:39:03 +0000 (00:39 +0000)]
Merge "Remove headers from LOCAL_SRC_FILES"
am:
927d624e5f
* commit '
927d624e5fd9667cf885ad4e997737a5c363ac1b':
Remove headers from LOCAL_SRC_FILES
Dan Willemsen [Wed, 27 Jan 2016 00:34:20 +0000 (00:34 +0000)]
Merge "Remove headers from LOCAL_SRC_FILES"
Marie Janssen [Tue, 26 Jan 2016 20:20:38 +0000 (20:20 +0000)]
Merge "service: Update HAL call for arguments"
Jakub Pawlowski [Tue, 26 Jan 2016 20:15:03 +0000 (20:15 +0000)]
service: add bunch of GATT callback handlers
am:
c0b16987d5
* commit '
c0b16987d55447ae52c9b8c8bb2548d9b74463ed':
service: add bunch of GATT callback handlers
Marie Janssen [Tue, 12 Jan 2016 19:14:24 +0000 (11:14 -0800)]
service: Update HAL call for arguments
The HAL now takes an additional argument for dumpsys arguments.
Change-Id: I286149e4d86ea50c4830a9f6d32e1d57025d01a7
(cherry picked from commit
802c8879cbf1d6490aa312a986ac199b84415cec)
Jakub Pawlowski [Tue, 26 Jan 2016 17:53:06 +0000 (09:53 -0800)]
service: add bunch of GATT callback handlers
RegisterForNotificationCallback
NotifyCallback
WriteCharacteristicCallback
WriteDescriptorCallback
Change-Id: Ic92104e427d153b5b6567fcd7fe4d967df2b3b61
Jakub Pawlowski [Tue, 26 Jan 2016 17:05:11 +0000 (17:05 +0000)]
service/example: Heart Rate Server: advertise UUID
am:
74385e53ac
* commit '
74385e53ac82a3e2d10c17d47f46a444bb856b4e':
service/example: Heart Rate Server: advertise UUID
Jakub Pawlowski [Tue, 26 Jan 2016 03:27:43 +0000 (19:27 -0800)]
service/example: Heart Rate Server: advertise UUID
Change-Id: Iaf7950e9af73926ec7bfb37189882ba8fad4123c
Jakub Pawlowski [Tue, 26 Jan 2016 16:59:31 +0000 (16:59 +0000)]
Merge "service: add pairing callback handling"
am:
16e1170f48
* commit '
16e1170f48d35a23a39c005826759ecc13c57a24':
service: add pairing callback handling
Jakub Pawlowski [Tue, 26 Jan 2016 16:59:22 +0000 (16:59 +0000)]
Merge "service: Fix BluetoothInterface locking issues"
am:
ea5c826204
* commit '
ea5c8262040b323c6f30f3a2aece8e730f81e273':
service: Fix BluetoothInterface locking issues
Jakub Pawlowski [Tue, 26 Jan 2016 16:55:58 +0000 (16:55 +0000)]
Merge "service: add pairing callback handling"
Jakub Pawlowski [Tue, 26 Jan 2016 16:55:27 +0000 (16:55 +0000)]
Merge "service: Fix BluetoothInterface locking issues"
Jakub Pawlowski [Tue, 26 Jan 2016 03:38:47 +0000 (19:38 -0800)]
service: add pairing callback handling
Change-Id: I13badc4ab9738374bfa082360a68086524d6bd9b
Jakub Pawlowski [Tue, 26 Jan 2016 15:21:15 +0000 (15:21 +0000)]
service: implement HAL callback for response confirmation
am:
d023549e2a
* commit '
d023549e2a111b55aaa25ac9a76f8ae318f28c1c':
service: implement HAL callback for response confirmation
Andre Eisenbach [Tue, 26 Jan 2016 15:17:34 +0000 (15:17 +0000)]
Do not enable A2DP sink by default
am:
e273daa4af
* commit '
e273daa4af2aa49ed23c172387ada70938c2130e':
Do not enable A2DP sink by default
Jakub Pawlowski [Tue, 26 Jan 2016 15:12:46 +0000 (07:12 -0800)]
service: implement HAL callback for response confirmation
Change-Id: Iec1c33574cef49053cf1f8eb3835b20047cb96eb
Andre Eisenbach [Mon, 25 Jan 2016 22:21:21 +0000 (14:21 -0800)]
Do not enable A2DP sink by default
Bug:
26742931
Change-Id: I70b1fdcd72abae2712e37f49ecb588901998cc12
Jakub Pawlowski [Tue, 26 Jan 2016 03:35:57 +0000 (19:35 -0800)]
service: Fix BluetoothInterface locking issues
ObserverList class handles adding/removing elements during iteration
by itself, therefore we don't need to do any locking.
Additionally, change lock type to shared for better performance, and
to avoid possible deadlocks that might be caused by calling HAL from
observers.
Change-Id: Ie2e6ff61f6a285e2f9d3dd1ab7ed37985ca31082
Dan Willemsen [Tue, 26 Jan 2016 03:48:44 +0000 (19:48 -0800)]
Remove headers from LOCAL_SRC_FILES
The build system does not use headers or directories in LOCAL_SRC_FILES.
To prevent typos, it's becoming a warning to add something to
LOCAL_SRC_FILES that is not used.
Also remove default values while we're here.
Change-Id: Ide7b6ecbe21933719736342d4d545368788c652b
Jakub Pawlowski [Mon, 25 Jan 2016 17:51:53 +0000 (17:51 +0000)]
service: Handle configure_mtu_cb, search_complete_cb and search_result_cb events
am:
9c68cdfcbf
* commit '
9c68cdfcbf2220b7c1f30d1d0521775c238ba823':
service: Handle configure_mtu_cb, search_complete_cb and search_result_cb events
Jakub Pawlowski [Fri, 22 Jan 2016 03:44:43 +0000 (19:44 -0800)]
service: Handle configure_mtu_cb, search_complete_cb and search_result_cb events
This patch adds HAL wrappers for those three events in preparation to
triggering MTU exchange and service discovery.
search_result_cb will not be propagated above HAL, new method will be
implemented to get GATT database content when it's ready.
Change-Id: Id25699879923ff64c8bdb8942581ea32c2390dac
Marie Janssen [Mon, 25 Jan 2016 16:23:36 +0000 (16:23 +0000)]
Merge "service/example: Add advertise flag for hr server"
am:
fd4df52056
* commit '
fd4df520568c7d9aca079826821d69684638fb2d':
service/example: Add advertise flag for hr server
Marie Janssen [Mon, 25 Jan 2016 16:18:55 +0000 (16:18 +0000)]
Merge "service/example: Add advertise flag for hr server"
Jakub Pawlowski [Mon, 25 Jan 2016 14:59:33 +0000 (14:59 +0000)]
Merge "service: handle remote_device_properties_cb callback"
am:
916441a24c
* commit '
916441a24c6d45e641341a3c4d06c556a9b2772b':
service: handle remote_device_properties_cb callback
Jakub Pawlowski [Mon, 25 Jan 2016 14:54:50 +0000 (14:54 +0000)]
Merge "service: handle remote_device_properties_cb callback"
tturney [Mon, 25 Jan 2016 13:53:28 +0000 (13:53 +0000)]
Additional headsets blacklisted for absolute volume
am:
47b4561ad7
* commit '
47b4561ad766b8acdeb5aa6926e858f3bd689eff':
Additional headsets blacklisted for absolute volume
tturney [Thu, 21 Jan 2016 18:19:22 +0000 (10:19 -0800)]
Additional headsets blacklisted for absolute volume
Devices blacklisted:
Bluebuds Freedom
iKross
Jabra
Swage Rokitboost HS
Bug:
26070064
Change-Id: Ic27d225718b84234541bf1b170f94dea0bc4463c
Sharvil Nanavati [Sat, 23 Jan 2016 01:28:16 +0000 (01:28 +0000)]
Merge "Remove unused definition BOARD_HAVE_BLUETOOTH_BCM."
am:
01d5513e18
* commit '
01d5513e182941171c61c449a05cf23fdc59c56a':
Remove unused definition BOARD_HAVE_BLUETOOTH_BCM.
Eric Laurent [Sat, 23 Jan 2016 01:28:11 +0000 (01:28 +0000)]
A2DP audio HAL: fix write error behavior
am:
ec647fa1db
* commit '
ec647fa1db61806a334fc883fb98679768ac4d0b':
A2DP audio HAL: fix write error behavior
Sharvil Nanavati [Sat, 23 Jan 2016 01:23:35 +0000 (01:23 +0000)]
Merge "Remove unused definition BOARD_HAVE_BLUETOOTH_BCM."
Eric Laurent [Thu, 14 Jan 2016 02:09:37 +0000 (18:09 -0800)]
A2DP audio HAL: fix write error behavior
Do not return -1 status in case of write error but
emulate normal timing and return the number of bytes written
as if no error had occured.
This is because audio flinger does not take any recovery
action in case of write error anyway but does not increment the
number of frames written to the HAL.
In case of persisting error, active audio tracks will not finish playback
and a wakelock will be held indefinitely.
Bug:
25488825
Change-Id: I4f00ba8d7a5c55f70520d448d894240c54685027
Sharvil Nanavati [Sat, 23 Jan 2016 00:54:33 +0000 (16:54 -0800)]
Remove unused definition BOARD_HAVE_BLUETOOTH_BCM.
Change-Id: I4f47ffbec067ad1d7b4db0269cd5f7ee21ae7861
Jakub Pawlowski [Fri, 22 Jan 2016 23:07:07 +0000 (15:07 -0800)]
service/example: Add advertise flag for hr server
From now on if example hr server is run with --advertise flag,
it will start advertising connectable advertisements with name
and tx power.
Change-Id: I9bc9e5037022c7b61d9f466e32a0c2e30a58815b
Pavlin Radoslavov [Fri, 22 Jan 2016 21:24:34 +0000 (21:24 +0000)]
Add missing creation of timer tSMP_CB.smp_rsp_timer_ent
am:
98ae9b25a3
* commit '
98ae9b25a36d7461cc1163f1da7e272b4edf1fcb':
Add missing creation of timer tSMP_CB.smp_rsp_timer_ent
Pavlin Radoslavov [Fri, 22 Jan 2016 21:13:45 +0000 (13:13 -0800)]
Add missing creation of timer tSMP_CB.smp_rsp_timer_ent
Add missing creation of timer tSMP_CB.smp_rsp_timer_ent so
the timer is not NULL.
Bug:
26611369
Change-Id: I2882d40090599b628ecee777b244376168806776
Pavlin Radoslavov [Fri, 22 Jan 2016 19:40:33 +0000 (19:40 +0000)]
Add extra log if timer_create(CLOCK_BOOTTIME_ALARM) fails
am:
4b7f560168
* commit '
4b7f560168f9e7523217d4b372fde4b0adba4d3b':
Add extra log if timer_create(CLOCK_BOOTTIME_ALARM) fails
Pavlin Radoslavov [Fri, 22 Jan 2016 18:44:40 +0000 (10:44 -0800)]
Add extra log if timer_create(CLOCK_BOOTTIME_ALARM) fails
Add explicit log messages if timer_create(CLOCK_BOOTTIME_ALARM)
fails. The most likely reason is the kernel doesn't have
the appropriate patches.
Bug:
25739638
Change-Id: Icbeaa965d729ba11dfb7cfbb6185b1655b3c6de4
Jakub Pawlowski [Fri, 22 Jan 2016 03:14:05 +0000 (19:14 -0800)]
service: handle remote_device_properties_cb callback
remote_device_properties_cb is being triggered by HAL when
scanning for remote devices. Leaving it as null causes lots
of assert errors in log. This patch fixes that.
Change-Id: I4dae3a34adbe59d659608387504206cc06ec6530
Pavlin Radoslavov [Fri, 22 Jan 2016 03:04:19 +0000 (03:04 +0000)]
A workaround for kernels missing CLOCK_BOOTTIME_ALARM
am:
10978011f2
* commit '
10978011f286d20f10eb949e3557ad00a62c8424':
A workaround for kernels missing CLOCK_BOOTTIME_ALARM
Pavlin Radoslavov [Fri, 22 Jan 2016 02:04:36 +0000 (18:04 -0800)]
A workaround for kernels missing CLOCK_BOOTTIME_ALARM
If the kernel doesn't have support for CLOCK_BOOTTIME_ALARM,
then timer_create(CLOCK_BOOTTIME_ALARM) will fail.
Added #ifdef KERNEL_MISSING_CLOCK_BOOTTIME_ALARM guard to get around
the issue. Platforms that don't have CLOCK_BOOTTIME_ALARM should have
the following lines in the device's "bdroid_buildcfg.h" file:
/* Defined if the kernel does not have support for CLOCK_BOOTTIME_ALARM */
#define KERNEL_MISSING_CLOCK_BOOTTIME_ALARM TRUE
Bug:
26611369
Change-Id: I455dbbc20f43b21a83998cd60cac8dea0a73080d
Jakub Pawlowski [Fri, 22 Jan 2016 02:35:52 +0000 (02:35 +0000)]
Merge "service: Solve locking issues inside GATT interface"
am:
d61f8d9756
* commit '
d61f8d97564a7104901246957a794dbde7ed7adf':
service: Solve locking issues inside GATT interface
Jakub Pawlowski [Fri, 22 Jan 2016 02:23:30 +0000 (02:23 +0000)]
Merge "service: Solve locking issues inside GATT interface"
Pavlin Radoslavov [Fri, 22 Jan 2016 02:04:46 +0000 (02:04 +0000)]
Refactor the Bluetooth timers
am:
78bcff79e1
* commit '
78bcff79e1b1f0efce436b33bdd6da88745bfc8a':
Refactor the Bluetooth timers
Pavlin Radoslavov [Sat, 5 Dec 2015 01:36:34 +0000 (17:36 -0800)]
Refactor the Bluetooth timers
* Updated the alarm API:
- Existing API alarm_new() is modified to take an alarm name
as an argument.
- New API alarm_new_periodic() is used to create a periodic
alarm.
- Added new API alarm_is_scheduled() to test whether an alarm is
scheduled.
- Existing API alarm_set_periodic() is removed: a periodic
alarm is created by alarm_new_periodic().
- Added new API alarm_set_on_queue() to set an alarm whose
callback is executed on a specific queue.
- Added new API alarm_register_processing_queue() and
alarm_unregister_processing_queue() to register/unregister
a queue and the corresponding thread for alarm processing.
- Added corresponding unit tests.
* Updated the alarm internals:
- Added alarm_info_t for collecting alarm-related information
and statistics.
- Collect and store alarm-related statistics into alarm_info_t
per alarm.
- Include the alarm-related statistics and info into the native
dumpsys output for Bluetooth.
- Once an alarm expires, the alarm execution is scheduled for
processing on another internal alarm-specific thread, not
on the thread that is maintaining the alarms.
- Implemented callback execution ordering guarantee among
timers on the same thread with exactly same timeout values.
* Refactor some of the usage of alarm_set() and simplify the
code by using alarm_set_on_queue() instead.
* Removed the non_repeating timers wrapper, and use directly
the alarm mechanism / API.
* Refactored all timer_entry_t timers and replaced them with alarm_t
timers:
- Replaced the btu_start_timer() / btu_stop_timer() /
btu_start_quick_timer() / btu_stop_quick_timer() /
btu_oneshot_alarm() mechanism with alarm_set_on_queue() and
alarm_cancel()
- Removed the whole mechanism around the BTU_TTYPE_* timers.
* Fixed a bug when processing the GATT indication confirmation timer
expiration (timer tGATT_TCB.conf_timer: b/
26610829).
* Renamed and/or split misc. timeout functions, fields, and timers
* Renamed time-related constants and changed the values from seconds
to milliseconds
* Replaced timer tAVDT_CCB.timer_entry with three mutually exclusive timers:
idle_ccb_timer, ret_ccb_timer, rsp_ccb_timer
The reason we are using three timers, is because in the original code
function avdt_ccb_chk_timer() used the timer type in its logic: it
would stop the timer only if the type is "idle".
* Removed btm_ble_timeout() and replaced it with multiple timeout
callback functions (per timer)
* Fix the actual value of the global constant BT_1SEC_TIMEOUT and
rename it to BT_1SEC_TIMEOUT_MS
* Removed btu_cb and associated timers and events, because they are
never used.
* Removed unused timers, functions, struct and declarations that are
not used / needed.
Bug:
26611369
Bug:
26610829
Change-Id: I812c8c31710a5daefc58b01fcf35c353768f390f
Pavlin Radoslavov [Fri, 22 Jan 2016 01:45:06 +0000 (01:45 +0000)]
Add support for native kernel and callout wakelocks
am:
d2e250824f
* commit '
d2e250824fca5c42b87b3b6f5fa19646ffa2d321':
Add support for native kernel and callout wakelocks
Pavlin Radoslavov [Mon, 24 Aug 2015 23:29:21 +0000 (16:29 -0700)]
Add support for native kernel and callout wakelocks
* Moved wakelock-related code to osi/src/wakelock.c
The API is in osi/include/wakelock.h
* Use wakelock_set_os_callouts() to specify native kernel
or callout-based wakelock.
On Android, wakelock_set_os_callouts() is called to
set the bt_os_callouts_t callbacks into the Java layer.
* Renamed alarm_set_wake_lock_paths() to wakelock_set_paths()
Also, added Bluetooth Wakelock Statistics to the bugreport.
Sample output:
$ adb shell dumpsys bluetooth_manager
...
Bluetooth Wakelock Statistics:
Wakelock is acquired : false
Wakelock acquired/released count : 5 / 5
Wakelock acquired/released errors : 0 / 0
Wakelock last acquired time (ms) : 1524
Wakelock acquired time min/max/avg (ms) : 1511 / 8104 / 3167
Wakelock total acquired time (ms) : 15836
Bluetooth total run time (ms) : 44123
Bug:
26645431
Change-Id: I42bfb7db5b016719faea39e47ebc77c3ad02467b
Pavlin Radoslavov [Fri, 22 Jan 2016 01:35:36 +0000 (17:35 -0800)]
Sync minor nits with AOSP
No functional changes.
Change-Id: I6bab5d3b0ba4f6a543418943996b029bb3d67a6d
Marie Janssen [Mon, 16 Nov 2015 18:35:17 +0000 (10:35 -0800)]
tests: don't use bt_os_callouts for wakelocks
Introduces alarm_set_wake_lock_paths so wake lock paths can be changed
for testing, and adds AlarmTestHarness::WakeLockHeld to test whether a
wake lock is currently held.
Bug:
25387683
Change-Id: I9a41ae8266e252a3d436f8d41ea3f9e7ecb45cdc
Pavlin Radoslavov [Fri, 22 Jan 2016 01:11:46 +0000 (17:11 -0800)]
Revert "Revert "Enable kernel wakelocks and timers""
This reverts commit
89590b95e3f0c8f3a7c6005ee3b837cc3984c4d5.
The revert of the revert is needed to restore the original
code and prepare it for updating the wakelock mechanism.
Sharvil Nanavati [Thu, 21 Jan 2016 20:26:18 +0000 (20:26 +0000)]
Move btsnooz.py script from Android Wear to the BT stack project.
am:
1c50abb872
* commit '
1c50abb87294b033d1604820d34ba5853d5bf253':
Move btsnooz.py script from Android Wear to the BT stack project.
Sharvil Nanavati [Thu, 21 Jan 2016 20:26:14 +0000 (20:26 +0000)]
Update btsnooz log file format to log ACL and SCO headers.
am:
e8c3dde6cf
* commit '
e8c3dde6cfec13e8a0b3f87397319eab4cb86ad5':
Update btsnooz log file format to log ACL and SCO headers.
Sharvil Nanavati [Wed, 20 Jan 2016 17:14:47 +0000 (09:14 -0800)]
Move btsnooz.py script from Android Wear to the BT stack project.
Change-Id: I8368820b5ed9325d2c3b82885b9fe934c6bc87ca
Jakub Pawlowski [Thu, 21 Jan 2016 00:24:03 +0000 (16:24 -0800)]
service: Solve locking issues inside GATT interface
ObserverList class handles adding/removing elements during iteration
by itself, therefore we don't need to do any locking.
Additionally, change lock type to shared for better performance, and
to avoid possible deadlocks that might be caused by calling HAL from
observers.
Change-Id: I4c372f1e03bd27a96bc6c036ab8ce34f5501c0a7
Sharvil Nanavati [Fri, 15 Jan 2016 21:41:56 +0000 (13:41 -0800)]
Update btsnooz log file format to log ACL and SCO headers.
Change-Id: I72db1769197150f34ebba6fcb9c0e3db2404f342
Alex Vakulenko [Thu, 21 Jan 2016 03:51:10 +0000 (03:51 +0000)]
Fix build break in system/bt
am:
c637b0c828
* commit '
c637b0c8287226c90d5b573080a7a3ef80f53a46':
Fix build break in system/bt
Adam Lesinski [Thu, 21 Jan 2016 03:51:05 +0000 (03:51 +0000)]
Add socket tx/rx accounting
am:
0620f9706d -s ours
* commit '
0620f9706d9aa06ba7f8982840eeb7ab2ad90e7a':
Add socket tx/rx accounting
Alex Vakulenko [Thu, 21 Jan 2016 03:04:32 +0000 (19:04 -0800)]
Fix build break in system/bt
This was due to libchrome uprev submitted earlier
Change-Id: Ic0f1bd80ff4563bd73754cd3b9fcd521e93616e7
Adam Lesinski [Thu, 21 Jan 2016 02:22:04 +0000 (02:22 +0000)]
Merge "Add socket tx/rx accounting"
Adam Lesinski [Thu, 3 Dec 2015 06:15:08 +0000 (22:15 -0800)]
Add socket tx/rx accounting
Records network traffic going over bluetooth sockets. This patch adds support
for L2CAP and RFCOMM.
Bug:
26039657
Change-Id: Idb860b367b429fa5ef41d02684a5494a668ee8ed
Jakub Pawlowski [Thu, 21 Jan 2016 00:54:57 +0000 (00:54 +0000)]
Merge "service/client: implement connect and disconnect methods"
am:
5fbbf42c5f
* commit '
5fbbf42c5fdf387d7a0ecab1a621161e7b382576':
service/client: implement connect and disconnect methods
Ajay Panicker [Thu, 21 Jan 2016 00:54:52 +0000 (00:54 +0000)]
Add missing field to fake Bluetooth interface
am:
1cbff4e542
* commit '
1cbff4e5423999a89072869bcba27d6e1608a2ae':
Add missing field to fake Bluetooth interface
Adam Lesinski [Thu, 3 Dec 2015 06:15:08 +0000 (22:15 -0800)]
Add socket tx/rx accounting
Records network traffic going over bluetooth sockets. This patch adds support
for L2CAP and RFCOMM.
Bug:
26039657
Change-Id: Id30d69e4cd648f0e88ab23517e3b94f29b393995
Jakub Pawlowski [Thu, 21 Jan 2016 00:35:34 +0000 (00:35 +0000)]
Merge "service/client: implement connect and disconnect methods"
Jakub Pawlowski [Wed, 20 Jan 2016 01:07:53 +0000 (17:07 -0800)]
service/client: implement connect and disconnect methods
Change-Id: I141e8a1a917adfe7a2eb1c8adaf5e09fad9df5ac
Alex Vakulenko [Wed, 20 Jan 2016 23:32:40 +0000 (23:32 +0000)]
bt: Update libchrome APIs to r369476
am:
57d7bf98ea
* commit '
57d7bf98ea5f7a08c93c30f5d8a0e303d78ea432':
bt: Update libchrome APIs to r369476