OSDN Git Service

android-x86/system-bt.git
8 years agoRead local supported codecs as part of boot sequence
Srinu Jella [Fri, 4 Mar 2016 18:36:36 +0000 (18:36 +0000)]
Read local supported codecs as part of boot sequence
am: f6dcf79f62

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

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

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

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

Change-Id: I37a4ab9e6a20ed057ca794dbdd4f99c2a8c65a6e

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

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

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

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

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

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

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

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

Change-Id: I2119c6c86d8e4798e516c512ad7aac7630b85a6a

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

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

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

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

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

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

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

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

Change-Id: I6fb0c6156482d2da41ca0d2d280091d73c27f292

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

* commit 'b7d4613b3c1fae825b4c7ba94907c75513feb1c7':
  HID: Reset outgoing connection retry to 1

8 years agoHID: Reset outgoing connection retry to 1
Hemant Gupta [Fri, 4 Mar 2016 17:19:55 +0000 (22:49 +0530)]
HID: Reset outgoing connection retry to 1

Reduce the retry time from host to 1 from 3 to prevent collision scenarios
when remote also tries to connect which could lead to potential authentication
issues in SoC.

Change-Id: I3b5db4a4c4aa985cb9c0537499ce608f9e5d5522

8 years agoHID: Remove bond for device in case Virtual unplug is ongoing
Hemant Gupta [Fri, 4 Mar 2016 17:33:38 +0000 (17:33 +0000)]
HID: Remove bond for device in case Virtual unplug is ongoing
am: dc5272a39d

* commit 'dc5272a39d7915d0c921de2fb0727853fadda40a':
  HID: Remove bond for device in case Virtual unplug is ongoing

8 years agoHID: Remove bond for device in case Virtual unplug is ongoing
Hemant Gupta [Fri, 11 Dec 2015 10:17:45 +0000 (15:47 +0530)]
HID: Remove bond for device in case Virtual unplug is ongoing

Remove bond for remote device in case virtual unplug was initiated from
local device, and ACL got disconnected while processing the VUP request.
this can happen when aaplication is sending disconnect and remove bond
in quick succession. Without this fix it was observed that device was
getting disconnected, but was not getting unpaired even when user
tried to unpair from UI.

Change-Id: Ife1fc99ed59b13daf0bcf0dce3e0a59c7d9e87d7

8 years agoShorten local name in EIR data according to UTF encoding rules
Matadeen Mishra [Wed, 3 Feb 2016 15:20:31 +0000 (20:50 +0530)]
Shorten local name in EIR data according to UTF encoding rules

Use case:
Test short name after setting the name with maximum length

Steps to reproduce:
1) Phone A: Rename bluetooth into a 60 character Chinese name
2) Phone B: Discover phone A.
3) The short name of phone A will display in phone B and the short
name cantains unrecognizable chars.

Root cause:
As Chinese characters are encoded in different
length in UTF, if shorten BT name in fixed length,
there will be unrecognized characters

Fix:
Shorten BT name according to UTF encoding rule and decrease
the length.

Change-Id: I5f1e49c1b5d87d5e220538c90e297c50ccc790ff

8 years agoUse correct transport type for GATT client and server connections
Subramanian Srinivasan [Fri, 4 Mar 2016 07:47:20 +0000 (07:47 +0000)]
Use correct transport type for GATT client and server connections
am: d27af38849

* commit 'd27af388490dbe194035ad779096f98aef92d1a5':
  Use correct transport type for GATT client and server connections

8 years agoUse correct transport type for GATT client and server connections
Subramanian Srinivasan [Thu, 29 Oct 2015 00:05:22 +0000 (17:05 -0700)]
Use correct transport type for GATT client and server connections

Use correct transport type for GATT client and server connect
API calls. This change uses the transport used while calling
the connect frameworks API instead of relying on the NVRAM to
find the transport on which the connect call needs to be sent
to the BT stack.

Change-Id: Idf5817b8980e848c6ebebf1e9a79dbce61d8cfc8

8 years agoUpdate OCF values per 0.96 spec
Satya Calloji [Fri, 4 Mar 2016 07:18:33 +0000 (07:18 +0000)]
Update OCF values per 0.96 spec
am: ca58b09a91

* commit 'ca58b09a9129e334f116b7bbdfc0a3834afa299e':
  Update OCF values per 0.96 spec

8 years agoUpdate OCF values per 0.96 spec
Satya Calloji [Wed, 2 Mar 2016 19:25:49 +0000 (11:25 -0800)]
Update OCF values per 0.96 spec

HCI command values are updated as per Google HCI
BLE requirements v0.96

Bug: 27069512
Change-Id: I30e0046c5d3198f0986e03baf697bad2be99c06e

8 years agoOCF for LE Extended Set Scan Parameters Cmd is not correct
Eri Kasamatsu [Fri, 4 Mar 2016 07:14:43 +0000 (07:14 +0000)]
OCF for LE Extended Set Scan Parameters Cmd is not correct
am: b67ada19a7

* commit 'b67ada19a7235552c802d3dccca011245379b6d5':
  OCF for LE Extended Set Scan Parameters Cmd is not correct

8 years agoOCF for LE Extended Set Scan Parameters Cmd is not correct
Eri Kasamatsu [Tue, 9 Feb 2016 14:11:51 +0000 (15:11 +0100)]
OCF for LE Extended Set Scan Parameters Cmd is not correct

OCF for LE Extended Set Scan Paramaters Cmd is defined as 0x15A
in documentation but it is defined as 0x160 in stack.
This results in command failing due to unknown hci command error.

Change-Id: Ia779164b7c03daa8053fb65e4fc8281235904031

8 years agoHandle unknown codecs sent by HF
Satish Kodishala [Fri, 4 Mar 2016 07:03:03 +0000 (07:03 +0000)]
Handle unknown codecs sent by HF
am: dccd759e2e

* commit 'dccd759e2ebb0c348d739e32599e50b419bcf7bc':
  Handle unknown codecs sent by HF

8 years agoHandle unknown codecs sent by HF
Satish Kodishala [Thu, 25 Jun 2015 07:48:35 +0000 (13:18 +0530)]
Handle unknown codecs sent by HF

Use case:
1. Connect to headset supporting CVSD, mSBC and other codecs.
2. Verify if headset sending AT+BAC with supported codecs.
3. Check if SCO is established with mSBC codec.

Failure:
SCO is established with CVSD codec.

Root cause:
When parsing AT+BAC command, if unknown codec is received,
we are falling back to CVSD although mSBC is supported in HF.

Fix:
AT+BAC parsing function modified to return correct codecs
supported by HF when it encounters unknown codecs in arguments
of AT+BAC.

Change-Id: I9ac7675c9d863e7362f85e3b7b8d9a42462bd5e9

8 years agoAvoid double-free on SDP search failure
Srinu Jella [Fri, 4 Mar 2016 06:57:13 +0000 (06:57 +0000)]
Avoid double-free on SDP search failure
am: 07f612cbc0

* commit '07f612cbc08364a622e6e02cdbb039b82586d82c':
  Avoid double-free on SDP search failure

8 years agoAvoid double-free on SDP search failure
Srinu Jella [Tue, 29 Dec 2015 08:00:19 +0000 (13:30 +0530)]
Avoid double-free on SDP search failure

Use case: BT transfer fails in Doze mode.

Pre-condition:
1. Device is in Doze mode.
2. Device is in Active state.

Steps to reproduce:
1. On test device and support device, turn on Bluetooth and keep test device in Bluetooth on screen.
2. Put device in Doze mode:
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle step
3. From support device send pair request to test device.
4. Pair two devices.
5. Put test device in Doze mode again.
6. Share one picture from support device to test device by Bluetooth.
7. Accept Bluetooth file transferring request.

Failure: From DUT, BT transfer is failed.

Root cause: Free buffer is called twice for the SDP search failure case.

Fix: Added null check for p_sdp_db to avoid freeing same buffer
     again on SDP search failure.

Change-Id: Ic7776e842c52418c2b0fb6d6479233d01c709dc2

8 years agoRemove bluedroidtest
Andre Eisenbach [Fri, 4 Mar 2016 06:41:45 +0000 (06:41 +0000)]
Remove bluedroidtest
am: cd0199a20b

* commit 'cd0199a20b48fcb191f3178a28a6a503e28b7685':
  Remove bluedroidtest

8 years agoRemove bluedroidtest
Andre Eisenbach [Fri, 4 Mar 2016 06:36:51 +0000 (22:36 -0800)]
Remove bluedroidtest

Use bluetooth-cli/bluetoothtbd instead.

Bug: 25369253
Change-Id: I485919dce4bf3229733c85e6a33c754b9cbd62fc

8 years agoDelete unused function declarations from sdp_api.h.
Sharvil Nanavati [Fri, 4 Mar 2016 06:37:49 +0000 (06:37 +0000)]
Delete unused function declarations from sdp_api.h.
am: 5c35aa44a2

* commit '5c35aa44a2d92185d9eee51781f2522773607986':
  Delete unused function declarations from sdp_api.h.

8 years agoDelete unused function declarations from sdp_api.h.
Sharvil Nanavati [Thu, 11 Jun 2015 06:20:24 +0000 (23:20 -0700)]
Delete unused function declarations from sdp_api.h.

Change-Id: I8db02d557fdfc138f2ec8de2b2d45049175fd999

8 years agoAvoid SMP process if another pairing is in progress
Nitin Arora [Fri, 4 Mar 2016 00:53:25 +0000 (00:53 +0000)]
Avoid SMP process if another pairing is in progress
am: 0bb891dc54

* commit '0bb891dc54b64e6cc4f774f565c614dfaff05b3a':
  Avoid SMP process if another pairing is in progress

8 years agoRemove MCB from mapping table when entry is released
Pavlin Radoslavov [Fri, 4 Mar 2016 00:53:20 +0000 (00:53 +0000)]
Remove MCB from mapping table when entry is released
am: 5170c746e5

* commit '5170c746e5b1ac033de0555760be96d68b139695':
  Remove MCB from mapping table when entry is released

8 years agoRemove dead methods and callbacks
Jakub Pawlowski [Fri, 4 Mar 2016 00:53:15 +0000 (00:53 +0000)]
Remove dead methods and callbacks
am: ee6b6d0965

* commit 'ee6b6d096541cc0f8333ad93cdbbf45e221396c4':
  Remove dead methods and callbacks

8 years agoAvoid SMP process if another pairing is in progress
Nitin Arora [Thu, 28 Jan 2016 01:07:55 +0000 (17:07 -0800)]
Avoid SMP process if another pairing is in progress

This change prevents the incoming pairing/security request
from a remote device when pairing with another remote has
been initiated by the host and has not yet begun.
The pairing request by the second remote will be rejected

Bug: 22525598
Change-Id: I676c85af39d5418c699161ad11eee5951f9203d7

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 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 22:32:34 +0000 (22:32 +0000)]
Simplify UUID handling in GATT cache
am: be18a60781

* commit 'be18a6078194547400fa9594a62d9d1bea5d7bea':
  Simplify UUID handling in GATT cache

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 agoIncrease the number of security slots for other new profiles
Srinu Jella [Thu, 3 Mar 2016 21:22:14 +0000 (21:22 +0000)]
Increase the number of security slots for other new profiles
am: 9fed745a38

* commit '9fed745a38b1ff2c5d4d67ca06760da5b07b7f11':
  Increase the number of security slots for other new profiles

8 years agoCorrect the max SDU length used in BTIF layer
Srinu Jella [Thu, 3 Mar 2016 21:22:09 +0000 (21:22 +0000)]
Correct the max SDU length used in BTIF layer
am: f19ca75c17

* commit 'f19ca75c17b8ee0c19261d946c5353c820238bc6':
  Correct the max SDU length used in BTIF layer

8 years agoIncrease the number of security slots for other new profiles
Srinu Jella [Tue, 25 Aug 2015 13:12:32 +0000 (18:42 +0530)]
Increase the number of security slots for other new profiles

Use case: MAP Sanity Test fail in multi-profile scenario.

Steps:
1. Connect to Instance 1   - Email Sanity Test Case
2. Connect to Instance 0&1 - Email & SMS Sanity Test Case

Failure: MAP sanity fail in multi-profile scenario.

Root Cause: some profile coonnection may fail in multi
profile scenario due to non availability of security id.

Fix: Increased the security slots to 75 to accomadate new
profiles introduced.

Change-Id: Ic7c0268aea654cba2dee0c323ca0342e71ebc577

8 years agoCorrect the max SDU length used in BTIF layer
Srinu Jella [Fri, 22 Jan 2016 10:04:16 +0000 (15:34 +0530)]
Correct the max SDU length used in BTIF layer

Use case: OPP Tx over L2CAP are failing due to invalid PUT packet from DUT.

Steps:
1. Make the Remote device setup with OPP server which supports MTU
   of more than 8k.
2. Send file from DUT to Remote device.
3. Transfer always fails.

Failure: OPP Tx over L2CAP file transfer fail. It will always fail
if remote supports more than 8076 as the MTU.

Root Cause: Max SDU of L2CAP layer will be communicated to the upper
layers, and same length of SDU being sent from upper layer
to BTIF layer, but because of change in the max SDU of
BTIF, it will receive less bytes than expected will lead
to form incomplete PUT request.

Fix: Correct the max SDU length used from BTIF layer to be in
sync with max SDU calculation from L2CAP layer.

Change-Id: Ie037c85e798bebf6a71c56488aae37455725028c

8 years agoMerge "Reconstruct new packet to accomodate extra header length"
Srinu Jella [Thu, 3 Mar 2016 19:49:45 +0000 (19:49 +0000)]
Merge "Reconstruct new packet to accomodate extra header length"
am: ab6a1335bf

* commit 'ab6a1335bf15d722b6fb420641b0b0ccc0f80d13':
  Reconstruct new packet to accomodate extra header length

8 years agoMerge "Reconstruct new packet to accomodate extra header length"
Ajay Panicker [Thu, 3 Mar 2016 19:46:35 +0000 (19:46 +0000)]
Merge "Reconstruct new packet to accomodate extra header length"

8 years agoEnable debug logs for bluetooth process threads, modules
Srinu Jella [Thu, 3 Mar 2016 19:46:08 +0000 (19:46 +0000)]
Enable debug logs for bluetooth process threads, modules
am: 0fa3554630

* commit '0fa35546304901c62bafcb54420d23ace56a69c1':
  Enable debug logs for bluetooth process threads, modules

8 years agoReconstruct new packet to accomodate extra header length
Srinu Jella [Sun, 13 Sep 2015 12:54:52 +0000 (18:24 +0530)]
Reconstruct new packet to accomodate extra header length

Use case: Bluetooth process crash problem in the middle of RFCOMM
test cases due to buffer corruption detected while freeing it.

Root Cause: RFCOMM layer trying to reuse the same packet to send
to the lower layer but it will fail due to strick buffer
corruption checks.

Failure: Bluetooth process crash.

Fix:  created a new packet to accomadate new header
and copied the same payload to the new packet.

Change-Id: I5d12b76229d11480f7f37bbcd3561de97c80a0c1

8 years agoCorrected the stream for error checking
Srinu Jella [Thu, 3 Mar 2016 19:44:37 +0000 (19:44 +0000)]
Corrected the stream for error checking
am: a73cf49473

* commit 'a73cf4947355e38d2f44f2f43e87e32a6ad83fd5':
  Corrected the stream for error checking

8 years agoRevert "DO NOT MERGE Proper construction of AVDTP general reject message"
JivakDhadse [Thu, 3 Mar 2016 19:44:33 +0000 (19:44 +0000)]
Revert "DO NOT MERGE Proper construction of AVDTP general reject message"
am: ebc951060a  -s ours

* commit 'ebc951060a76029c3dbc5784a766b09022fa9a19':
  Revert "DO NOT MERGE Proper construction of AVDTP general reject message"

8 years agoEnable debug logs for bluetooth process threads, modules
Srinu Jella [Tue, 1 Mar 2016 11:29:35 +0000 (16:59 +0530)]
Enable debug logs for bluetooth process threads, modules

Use case: Debug enhancement for bluetooth threads,
          modules

- Most of the bluetooth process threads,modules uses
  APIs provided from the OSI layer.

- This patch enables the debug logs to know when the
  thread, module is created and exited.

- This would be useful while debugging the ON/OFF,
  ANR issues.

Change-Id: I17f4f583d2c431725a8c44c586b29980b4bdab3f

8 years agoCorrected the stream for error checking
Srinu Jella [Tue, 1 Mar 2016 14:15:41 +0000 (19:45 +0530)]
Corrected the stream for error checking

Replace event_stream with acl_stream

Change-Id: I9ceb75ee05bad5d2ef1af819b3930216cc750507

8 years agoRevert "DO NOT MERGE Proper construction of AVDTP general reject message"
JivakDhadse [Fri, 7 Aug 2015 13:28:38 +0000 (18:58 +0530)]
Revert "DO NOT MERGE Proper construction of AVDTP general reject message"

This reverts commit 2ed10d442266eade44be121cd24fd473c85007d0.

Original change needs to be reverted to align with Errata
ESR04 where "Section 8.17, General Reject Page 71" of adopted
AvDTP Spec is changed to have "Invalid Signal Identifier"
in first 6 bits of Octet 1.
This change helps passing PTS case TP/SIG/SMG/ESR04/BI-28-C

Change-Id: Idfc960ce00662e8aacc26f3b3fdca9deca8a2aff

8 years agoPeer support of Absolute Volume to be updated only if device supports A2DP
Ayan Ghosh [Tue, 3 Dec 2013 09:22:22 +0000 (14:52 +0530)]
Peer support of Absolute Volume to be updated only if device supports A2DP

Peer support of absolute Volume feature should be updated to Audio
frameworks only for device which supports A2DP Sink and AVRCP Absolute
Volume TG roles together.
Audio manager need not be updated for AVRCP only peer devices as
that would cause sudden rise in ongoing stream volume when avrcp only
device connects, if it is set to some lower value with other device
connected for A2DP.

Change-Id: I75509d0b0fd1b06fa08390940a327dd2887d7562

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.

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.

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.

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.

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.

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.

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.

Change-Id: I4c09406395998bacf13471a273402a60f3b77f89

8 years agoRevert "Remove unused field p_cur_char"
Jakub Pawlowski [Thu, 3 Mar 2016 17:06:23 +0000 (17:06 +0000)]
Revert "Remove unused field p_cur_char"

This reverts commit 25e17fb1c7a894dec49fc8eddb2bbfb20a9eeb21.

Change-Id: I21936ae37c1e052ab53233b3465e336369a423df

8 years agoRemove unused field p_cur_char
Jakub Pawlowski [Thu, 3 Mar 2016 02:36:57 +0000 (18:36 -0800)]
Remove unused field p_cur_char

Change-Id: I956f966ddbb44506a5da8e1ab4ccb028bafa92de

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 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 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 agoSync filesystem after saving a backup of the config file.
Sharvil Nanavati [Tue, 1 Mar 2016 02:13:49 +0000 (18:13 -0800)]
Sync filesystem after saving a backup of the config file.

Bug: 27292025
Change-Id: Ied3f84157f491dcdf416de211ffbdb45b2abd529

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 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 agoSwapped memset params
Edward Savage-Jones [Wed, 24 Feb 2016 23:44:51 +0000 (00:44 +0100)]
Swapped memset params

Incorrect usage of memset

Change-Id: I7d96c560c4b462c2794b63eb66c7272b1280ba23

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 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).

Bug: 27336555
Change-Id: I4b04ca08a32c947f6f1eaabec7c4b099f96aab59

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 agoMerge "Update build files for Fluoride on Linux"
Jakub Pawlowski [Wed, 24 Feb 2016 20:57:30 +0000 (20:57 +0000)]
Merge "Update build files for Fluoride on Linux"

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 agoMerge "Clean A2DP dump output"
Ajay Panicker [Wed, 24 Feb 2016 20:16:46 +0000 (20:16 +0000)]
Merge "Clean A2DP dump output"

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 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 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 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 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 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 agoRevert "Pick proper addres type for unknown devices"
Andre Eisenbach [Tue, 23 Feb 2016 23:57:11 +0000 (23:57 +0000)]
Revert "Pick proper addres type for unknown devices"

This breaks Nexus Player remotes. Need to only do this if the device is *not* known.

This reverts commit b7672f4a3c2a87fab24c81b243e1872443509254.

Change-Id: Iba0f25576432c8c8c399ee54abee3e91430784ef

8 years agoMerge "Revert "Fix data reporting state when using HID device""
Andre Eisenbach [Tue, 23 Feb 2016 23:56:18 +0000 (23:56 +0000)]
Merge "Revert "Fix data reporting state when using HID device""

8 years agoRevert "Fix data reporting state when using HID device"
Andre Eisenbach [Tue, 23 Feb 2016 23:56:09 +0000 (23:56 +0000)]
Revert "Fix data reporting state when using HID device"

This breaks HID completely...

This reverts commit 5f30560dbb80f0231fb9f351ab5b0180513dffe7.

Change-Id: I2c1994a366e193a73dbc661e5c6b03d87d7732f3

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 agoMerge "Revert "linux: Make logwrapper show log tag on Linux""
Jakub Pawlowski [Tue, 23 Feb 2016 04:59:58 +0000 (04:59 +0000)]
Merge "Revert "linux: Make logwrapper show log tag on Linux""

8 years agoRevert "linux: Make logwrapper show log tag on Linux"
Jakub Pawlowski [Tue, 23 Feb 2016 04:59:42 +0000 (04:59 +0000)]
Revert "linux: Make logwrapper show log tag on Linux"

This reverts commit e4ae5c7522e6a77e1e0492afa3deed9fdc1569e8.

Change-Id: I8e0c890ee0960f986133939944c2c1362ac4f57c

8 years agoRemove unused import
Jakub Pawlowski [Mon, 22 Feb 2016 22:46:27 +0000 (14:46 -0800)]
Remove unused import

Change-Id: Ia259abc76b95d754fa31c2ccb96b6590348eb493

8 years agoMerge "linux: Make logwrapper show log tag on Linux"
Jakub Pawlowski [Tue, 23 Feb 2016 04:18:44 +0000 (04:18 +0000)]
Merge "linux: Make logwrapper show log tag on Linux"

8 years agoAdd tool to extract and view snooz logs from a bugreport
Ajay Panicker [Mon, 22 Feb 2016 22:08:34 +0000 (14:08 -0800)]
Add tool to extract and view snooz logs from a bugreport

Change-Id: I3893d094a1b1dd7853016d1f539f8998cdc84833

8 years agolinux: Make logwrapper show log tag on Linux
Jakub Pawlowski [Mon, 22 Feb 2016 22:41:34 +0000 (14:41 -0800)]
linux: Make logwrapper show log tag on Linux

Change-Id: I2219395f504952ae1d1371a439e58fef22b71184

8 years agoservice: Non-android OSs don't know how to Binder
Jakub Pawlowski [Mon, 22 Feb 2016 20:57:31 +0000 (12:57 -0800)]
service: Non-android OSs don't know how to Binder

Change-Id: I1eeabef6c6f065bbc309604345a0212fed7e7ef7

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

Change-Id: I0b7e5a9dda30875c9fc877baffa0daac9184cd42

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.

Change-Id: Ic424f673332668b21db11d323b389f5a5f4fba81

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.

Bug: 27048759
Change-Id: I7c71b408f40d58f6ebf3a310aa806daba3342f77

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 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 agoMerge "Additional logging for bond information"
Pavlin Radoslavov [Wed, 17 Feb 2016 19:22:13 +0000 (19:22 +0000)]
Merge "Additional logging for bond information"