OSDN Git Service

android-x86/system-bt.git
8 years agoLimit Max Bitpool value to SPEC recommended one
Ayan Ghosh [Fri, 26 Dec 2014 12:48:28 +0000 (18:18 +0530)]
Limit Max Bitpool value to SPEC recommended one

Preferred bipool for 44.1 KHz sampling rate for SBC
codec is considered as 53. Hence limit Max Bitpool
value to 53 in setconfig request to have it same as
the one DUT sets in getConfig response and in encoding
pcm packets.
few BMW series of CKs does not connect unless DUT
configures max bitpool in setconfig request to 53.

Bug: 27852645
Change-Id: Ie7ca504c23f6bae8fda997cdeb3e0ff0733defb0

8 years agoAllow Carkit to trigger play immediately after call
Ayan Ghosh [Wed, 7 Aug 2013 14:35:29 +0000 (20:05 +0530)]
Allow Carkit to trigger play immediately after call

Removing check in stack where AVRCP Play and Pause commands
are being dropped if carkit initiates play or pause within
six seconds.
This addresses the scenario where JCI-Mazda CK pauses the
streaming by initiating Avrcp Pause right before making call
and can not resume the streaming by sending Avrcp Play right
after call ends.

Bug: 27852645
Change-Id: Ibb04223de746f528b356e78bd65130d3fd526a44

8 years agoInitialize sco codecs supported with CVSD
Satish Kodishala [Thu, 27 Aug 2015 05:21:45 +0000 (10:51 +0530)]
Initialize sco codecs supported with CVSD

Usecase:
1. Connect headset/carkit supporting codec negotiation
   but does not send AT+BAC with available codecs.
2. Make a call and create SCO connection.
3. Transfer audio to AG from headset/carkit.
4. Transfer audio back to carkit.

Failure:
AG will not establish SCO connection with remote.

Rootcause:
We initialize codecs supported by remote as 0 and update
it with codecs received as part of AT+BAC. When AG sends
+BCS to start codec negotiation, it received AT+BCS=1 from
remote. Since 1 is not in the list of remote supported codecs
(0), AG will not create SCO connection in step#4.

Fix:
Initialize sco codecs supported by remote with mandatory
codec, CVSD.

Bug: 27852645
Change-Id: Ibe0e1a7bd3e59e8618568d320acfbde88f3fc11e

8 years agoIgnore empty optional parameters in CLCC response
Satish Kodishala [Tue, 15 Sep 2015 14:16:41 +0000 (19:46 +0530)]
Ignore empty optional parameters in CLCC response

Usecase:
Pair and connect with AG that sends the optional parameters
in CLCC response.

Failure:
When optional parameters in CLCC response from AG is empty,
HF client is not parsing the empty optional parameters.
User may not be see the phone number on UI properly on
hf client device.

Root cause:
AGs like iPhone sends optional parameters in the CLCC response.
HF client is returning NULL when it encounters empty optional parameters.

Fix:
Ignore empty optional parameters in CLCC Response from AG.

Bug: 27852645
Change-Id: Ia90986ccc4c9c9f1a6fb3a914bc1df8b0a75ba0f

8 years agoClear remote BD address if SDP search fails
Satish Kodishala [Thu, 25 Jun 2015 08:53:17 +0000 (14:23 +0530)]
Clear remote BD address if SDP search fails

Use case:
1. Enable multi hf.
2. Pair and connect to a headset.
3. Turn off headset and try connecting to headset from AG.
4. After the connection fails, turn on headset.
5. Make sure headset initiates HF connection to AG.
6. Make MO/MT call, switch from headset to AG, vice versa using headset.

Failure:
When call is transferred from AG to headset, headset initiated
SCO connection request is rejected by AG.

Root cause:
For outgoing connection in step 3, SDP search fails. BD address of
remote headset is stored in scb[0]. BD address of headset with which
we tried to connect is not cleared in scb[0].

When incoming HF connection request is accepted in step 5, BD address
of headset is stored in scb[1]. Now, BD address of the same headset is
stored in both scb[0], scb[1].

When SCO connection request is received from headset, we get scb
information using BD address. However, since BD address in scb[0]
is not cleared, we end up selecting scb[0] for which there is no
headset connected. This makes us think that remote is initiating
SCO connection without SLC and we reject the SCO connection.

Fix:
Clear the BD address of remote when SDP search fails.

Bug: 27852645
Change-Id: I21a0b83fcd47fed91e28fe27bdfd6d541b6a527c

8 years agoDo not reset Sniff Subrating parameters on SCO link
Satish Kodishala [Tue, 2 Feb 2016 11:52:15 +0000 (17:22 +0530)]
Do not reset Sniff Subrating parameters on SCO link

Usecase:
1. Pair and connect to BT headset
2. Pair and connect to a watch
3. Pair and connect a LE device
4. Make a call and reset BT on phone
5. Verify devices connect back and SCO is established

Failure:
After BT reset, devices connect and SCO is up. After some time,
SCO and ACL link disconnects due to connection timeout.

Rootcause:
When Headset is connected during active call, HFP is connected
first. Due to active call, SCO is also established. When SCO is
established, we disable sniff subrating(SSR). When A2DP is
connected after SCO connection, it enables SSR. This enabling
of SSR is causing ACL disconnect.

Fix:
When there is new profile connection for the same device which
has SCO, we should not enable SSR. It should be enabled only
when there is no SCO.

Bug: 27852645
Change-Id: I7815dba90851366ecc0523447c2394631c10ede1

8 years agoUpdate the sniff policy when SCO is active
Mallikarjuna GB [Tue, 23 Jun 2015 09:49:29 +0000 (15:19 +0530)]
Update the sniff policy when SCO is active

Use case:
1. Connect BT headset.
2. Make an outgoing call or receive a call on BT headset.
3. Check if sniff parameters are taking affect when SCO is active.

Failure:
Sniff parameters when SCO is active are not taking affect.

Root cause:
SCO link was not checked when updating power manager(PM)
about idle or busy states.

Fix:
During AG tx/rx activity, update PM based on SCO state.

Bug: 27852645
Change-Id: I4c09406395998bacf13471a273402a60f3b77f89

8 years agoFix broken formatting in README.md
Jakub Pawlowski [Fri, 26 Feb 2016 00:13:31 +0000 (16:13 -0800)]
Fix broken formatting in README.md

Markdown formatter at:
https://android.googlesource.com/platform/system/bt/
interpret some things differently than other formatters.
This patch fixes badly formatted parts.

Change-Id: Ibe8a9c159d9d47396ef073f6555f06720bc3e661

8 years agoBuild on linux: final changes and instructions.
Jakub Pawlowski [Thu, 25 Feb 2016 20:16:31 +0000 (12:16 -0800)]
Build on linux: final changes and instructions.

After this patch anyone should be able to build Fluoride on Linux.

Bug: 27324453
Change-Id: I7776be12591b8fed6d38fc0375019606d311ddb9

8 years agoMove properties get/set code to osi
Jakub Pawlowski [Wed, 24 Feb 2016 18:39:46 +0000 (10:39 -0800)]
Move properties get/set code to osi

Currently we use Android-specific property_get and property_set
through the code. This patch adds osi_property_get and osi_property_set
that is encapsulating all external dependencies. This is step further
for errorless compilation on linux.

Bug: 27324453
Change-Id: I97c34344617a5855b683328bcd196a21a2fae6f9

8 years agoAdd missing file to BUILD.gn
Jakub Pawlowski [Wed, 24 Feb 2016 23:40:27 +0000 (15:40 -0800)]
Add missing file to BUILD.gn

This patch adds missing osi_module.c file. Without it Fluoride
on Linux compiles, but fails to run.

Bug: 27324453
Change-Id: I08eb6bc55149d1b70580643fdf131b197c027caf

8 years agoUpdate build files for Fluoride on Linux
Jakub Pawlowski [Tue, 23 Feb 2016 02:04:24 +0000 (18:04 -0800)]
Update build files for Fluoride on Linux

uprev build/secondary/third_party/**/BUILD.gn"
Other BUILD.gn files were updated to match current state of project.

Change-Id: Ie895d25680d510f5e69e6f15553311f6671cdce3

8 years agoAdd Linux-specific version of metrics.
Jakub Pawlowski [Tue, 23 Feb 2016 23:28:35 +0000 (15:28 -0800)]
Add Linux-specific version of metrics.

This patch adds empty metrics implementation for Linux in
order to fix build errors.

Bug: 27324453
Change-Id: I2f45db6147689bf295176b7ad30a613a7f5a8d9f

8 years agoTurn down excess logging in bt hci
Joe Onorato [Fri, 18 Mar 2016 20:38:44 +0000 (13:38 -0700)]
Turn down excess logging in bt hci

Bug: 27744135
Change-Id: I30c975ceac7b4f7d74ab77e2279b080b049ece1b

8 years agoTell the build system this is a host module.
Ying Wang [Wed, 23 Mar 2016 18:41:15 +0000 (11:41 -0700)]
Tell the build system this is a host module.

We need to tell the build system this is a host module before calling
local-generated-sources-dir.

Change-Id: Ie36ad938c0c7124865148f20fcb70d5187f158b8
(cherry-pick from commit df515a46dd4fe27040c39d35b14b3e071319156d)

8 years agoUse handles to identify GATT attributes (1/4)
Jakub Pawlowski [Thu, 17 Mar 2016 19:05:54 +0000 (12:05 -0700)]
Use handles to identify GATT attributes (1/4)

Bug: 27778668
Change-Id: Id7454450c1ce2164001a1f9ca0b91f18d84e3fd6

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 agoMerge changes from topic 'bug-27455533-to-nyc-dev-merge-1' into nyc-dev
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

8 years agoCleanup after p_mcb if L2CA_ConnectReq() failed
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

8 years agoAdd missing initialization of queue btm_cb.sec_pending_q
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

8 years agoAdd config source to dumpsys output
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

8 years agoDo not leak eventfd's for RFCOMM/AVDT/L2CAP
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

8 years agoLog error code on wakelock acquisition/release failure
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

8 years agoMerge "Use audio_session_t consistently" into nyc-dev
Glenn Kasten [Thu, 17 Mar 2016 14:22:50 +0000 (14:22 +0000)]
Merge "Use audio_session_t consistently" into nyc-dev

8 years agoDO NOT MERGE Check size of pin before replying
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

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 [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 agoUse audio_session_t consistently
Glenn Kasten [Tue, 8 Mar 2016 20:12:33 +0000 (12:12 -0800)]
Use audio_session_t consistently

Bug: 27562099
Change-Id: I10780c8bfc84af568795a2c15557020fbe89a1c4

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 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 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 agoRemove dead methods and callbacks
Jakub Pawlowski [Mon, 29 Feb 2016 21:23:04 +0000 (13:23 -0800)]
Remove dead methods and callbacks

Bug: 27455533
Change-Id: Ie5661577320810468dd635022027a1e1a2f70a3e

8 years agoSimplify UUID handling in GATT cache
Jakub Pawlowski [Thu, 3 Mar 2016 04:01:30 +0000 (20:01 -0800)]
Simplify UUID handling in GATT cache

Bug: 27455533
Change-Id: I653b563d3b3c233ffe31b0a35d396a66db363459

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 [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 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 agoRemove MCB from mapping table when entry is released
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

8 years agoFix Dell LE keyboard connection issue
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

8 years agoFix miscellaneous compilation errors
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

8 years agoBtsnooz doesn't find snooplog sometimes
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

8 years agoFix l2cu_initialize_fixed_ccb() to return only initialized entries
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

8 years agoReset queue pointer to NULL after fixed_queue_free()
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

8 years agoEnsure inquiry is always stopped before service discovery
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

8 years agoMerge "Swapped memset params" into nyc-dev
Andre Eisenbach [Fri, 26 Feb 2016 04:23:38 +0000 (04:23 +0000)]
Merge "Swapped memset params" into nyc-dev

8 years agoFix a crash triggered when firmware config takes too long
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

8 years agoSwapped memset params
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

8 years agoProtect metrics API from race conditions
Ajay Panicker [Thu, 18 Feb 2016 20:24:10 +0000 (12:24 -0800)]
Protect metrics API from race conditions

Bug: 27315491
Change-Id: If57f7c23c94890e5f1cf196d2ec7a2a667b48cec

8 years agoAlarm Dump output cleanup
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

8 years agoClean A2DP dump output
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

8 years agoRemove extra newline before Btsnoop log summary
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

8 years agoClean up bond event dump printout
Ajay Panicker [Fri, 19 Feb 2016 00:33:07 +0000 (16:33 -0800)]
Clean up bond event dump printout

Bug: 27294154
Change-Id: I0b7e5a9dda30875c9fc877baffa0daac9184cd42

8 years agoMake wakelock compile on Linux
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

8 years agoAdd missing log tag in config_clear()
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

8 years agoGet rid of counter
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

8 years agoReplace usage of HCI_GET_CMD_BUF() with osi_malloc()
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

8 years agoRemoved unused defines from bt_target.h
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

8 years agoRevert "Pick proper addres type for unknown devices"
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.

8 years agoRevert "Fix data reporting state when using HID device"
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

8 years agoWrite Protobuf in Base64
Ajay Panicker [Thu, 18 Feb 2016 02:18:00 +0000 (18:18 -0800)]
Write Protobuf in Base64

Change-Id: I3868365e7fd166517b13ff03a15d629271bd47b4

8 years agoFix ParcelHelpersTest.ScanResult unit test
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

8 years agoAdd support for collecting A2DP Protobuf metrics
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

8 years agoInstrument and fix calls to strncmp()
Andre Eisenbach [Wed, 17 Feb 2016 20:43:12 +0000 (12:43 -0800)]
Instrument and fix calls to strncmp()

Bug: 27222508
Change-Id: I0075b4480aff52dcdc326b7bdb7154ca919ccee9

8 years agoSuspend properly when receiving events without response
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

8 years agoAdditional logging for bond information
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

8 years agoFix data reporting state when using HID device
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>
8 years agoservice: Use built-in byte vector parser
Jakub Pawlowski [Thu, 11 Feb 2016 19:34:38 +0000 (11:34 -0800)]
service: Use built-in byte vector parser

Change-Id: I72369c0b7678338fc8ccf520b59a95affdfd2994

8 years agoRemove the need for -Wno-constant-logical-operand
Andre Eisenbach [Tue, 16 Feb 2016 01:50:11 +0000 (17:50 -0800)]
Remove the need for -Wno-constant-logical-operand

Change-Id: Iea44eeed487df3236d9b482b7e5bbc92f7f46797

8 years agoRemove Porsche car-kit pairing workaround
Andre Eisenbach [Thu, 4 Feb 2016 21:19:32 +0000 (13:19 -0800)]
Remove Porsche car-kit pairing workaround

Bug: 26551752
Change-Id: I14c5e3fcda0849874c8a94e48aeb7d09585617e1

8 years agoFix compile error due to interop_feature_t not being public
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

8 years agoAdd new HAL functions to fake Bluetooth interface
Andre Eisenbach [Mon, 15 Feb 2016 22:51:07 +0000 (14:51 -0800)]
Add new HAL functions to fake Bluetooth interface

Change-Id: I5b2b5a495ea14fd743885c4061a6bcd3e7c39c23

8 years agoAdd ability to add interop entries dynamically (2/2)
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

8 years agoFix compilation warnings/errors on fugu
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

8 years agoFix C/C++ compiler generated warnings
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

8 years agoservice: Add services removed/added handlers
Jakub Pawlowski [Thu, 11 Feb 2016 17:05:14 +0000 (09:05 -0800)]
service: Add services removed/added handlers

Change-Id: Ida3f232b4e77bfb95dec78ea4af7677c9c12b411

8 years agoCleanup C and C++ compiler flags
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

8 years agoPick proper addres type for unknown devices
Jakub Pawlowski [Fri, 12 Feb 2016 23:15:52 +0000 (15:15 -0800)]
Pick proper addres type for unknown devices

Change-Id: I46641d0fe065b5e5a6620dc34c770429ac8dbe11

8 years agoFix discovery status handling
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

8 years agoValidates the PDU length of GATT Prepare Write attribute requests
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

8 years agoCreate backup for bt_config.conf
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

8 years agoRemoved function bte_load_ble_conf
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

8 years agoAdd handle range to BTA_GATTC_GetGattDb
Jakub Pawlowski [Wed, 10 Feb 2016 23:26:14 +0000 (15:26 -0800)]
Add handle range to BTA_GATTC_GetGattDb

Change-Id: Iaf0280853278a4f28dde5b952b646096cfb12d97

8 years agoRemoved checks for NULL returns after osi_calloc() / osi_malloc()
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

8 years agoosi: Don't use -std=c99 to compile
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

8 years agoRemove code related to legacy config file
Ajay Panicker [Wed, 10 Feb 2016 01:08:09 +0000 (17:08 -0800)]
Remove code related to legacy config file

Change-Id: Ia82d9bbffcc5df1ec4cddff28d812ca221505ab9

8 years agoAdd Privacy 1.0/1.1 check for BG connection
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

8 years agobinder: fix possible stack corruption
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

8 years agoFix possible memory leak
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

8 years agoAdd Developer menu entry to disable Bluetooth absolute volume
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

8 years agoReplaced osi_getbuf()/osi_freebuf() with osi_malloc()/osi_free()
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

8 years agoUse dynamic memory for keeping GATT cache
Jakub Pawlowski [Fri, 5 Feb 2016 07:50:45 +0000 (23:50 -0800)]
Use dynamic memory for keeping GATT cache

Change-Id: I60674c47246d8fe2094fe78ce31b752fa2acb89e

8 years agoAdd missing "\" at end of line
Jakub Pawlowski [Tue, 9 Feb 2016 01:11:55 +0000 (17:11 -0800)]
Add missing "\" at end of line

Change-Id: I6b8a275769387cc731f4bf5ec9ec4d10700fc0ba

8 years agoRemoved function osi_get_buf_size()
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

8 years agoDisable gnu-variable-sized-type-not-at-end warning
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

8 years agoAdd missing log tags
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

8 years agoRemove BCM_STR* macros
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

8 years agoAdd list_back_node method to osi list
Jakub Pawlowski [Fri, 5 Feb 2016 23:48:29 +0000 (15:48 -0800)]
Add list_back_node method to osi list

Change-Id: I919ce97373701cbdea03b8228b3a90263d7ef180

8 years agoFix auto disconnect right after connecting
Jakub Pawlowski [Wed, 10 Feb 2016 00:20:41 +0000 (16:20 -0800)]
Fix auto disconnect right after connecting

Bug: 27207638
Change-Id: Ia36cd898c21058b9a3ed56a0d300c3ea8384a5cf

8 years agoSet GATT link inactivity timer to 1
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