OSDN Git Service

android-x86/system-bt.git
7 years agoMerge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into master. am: 665bcf8f2d
Stephen Li [Fri, 27 Jan 2017 07:37:43 +0000 (07:37 +0000)]
Merge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into  am: 665bcf8f2d
am: c28c4325d2

Change-Id: Ib4b641b82598b01ce6f6706929b4e95a120ad359

7 years agoMerge "Remove HC_BUFFER_HDR_T" am: a6f6077be8
Andre Eisenbach [Fri, 27 Jan 2017 07:34:22 +0000 (07:34 +0000)]
Merge "Remove HC_BUFFER_HDR_T" am: a6f6077be8
am: a993bc5266

Change-Id: Id395ad6449a22f6fad413aec292dfeff86bbcb14

7 years agoMerge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into master.
Stephen Li [Fri, 27 Jan 2017 01:22:43 +0000 (01:22 +0000)]
Merge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into 
am: 665bcf8f2d

Change-Id: I3a3fc2d0cc9f6681178a5877b127ad55f98be9bc

7 years agoMerge "Remove HC_BUFFER_HDR_T"
Andre Eisenbach [Fri, 27 Jan 2017 01:22:32 +0000 (01:22 +0000)]
Merge "Remove HC_BUFFER_HDR_T"
am: a6f6077be8

Change-Id: I72c589c900c83b6adcd229248dc5b8590a73b64b

7 years agoMerge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into master.
Stephen Li [Thu, 26 Jan 2017 23:45:27 +0000 (15:45 -0800)]
Merge commit 'ca6d7dcbd49356338eaaa88de87885ecaf218c4d' into 

This is because patchset 1 of change 328081 got merged in to the branch
and not patchset 2, despite what gerrit UI says. This is a known error
and is being worked on.

Change-Id: If4f6f3d705e93f03d120c6441e16e9b0afc3d9ca

7 years agoMerge "Remove HC_BUFFER_HDR_T"
Treehugger Robot [Thu, 26 Jan 2017 23:22:12 +0000 (23:22 +0000)]
Merge "Remove HC_BUFFER_HDR_T"

7 years agoRemove HC_BUFFER_HDR_T
Andre Eisenbach [Wed, 25 Jan 2017 17:26:41 +0000 (09:26 -0800)]
Remove HC_BUFFER_HDR_T

Test: compiles
Change-Id: Ia5bf3395bd5a18a27168f05a0a2239a37ddb2c2c

7 years agoIntegration of the AAC codec for A2DP source am: d5f4960b42
Pavlin Radoslavov [Thu, 26 Jan 2017 19:25:53 +0000 (19:25 +0000)]
Integration of the AAC codec for A2DP source am: d5f4960b42
am: 2c66cfabaf

Change-Id: Ib6e37d4dace1d3db0b6b170de7b3b2fcc076aef4

7 years agoIntegration of the AAC codec for A2DP source
Pavlin Radoslavov [Thu, 26 Jan 2017 19:20:31 +0000 (19:20 +0000)]
Integration of the AAC codec for A2DP source
am: d5f4960b42

Change-Id: I75433922a48fab734ea5d0ee01c93d3a44cde8d8

7 years agoIntegration of the AAC codec for A2DP source
Pavlin Radoslavov [Wed, 4 Jan 2017 00:53:18 +0000 (16:53 -0800)]
Integration of the AAC codec for A2DP source

Also:
 - Implemented data fragmentation inside bta_av_data_path()
   that is RTP compatible.
 - Do not use the codec_type when composing the RTP payload type
   per RFC 3016, Section 4.2. That value doesn't have actual meaning
   in the context of the Bluetooth supported codecs, and is ambiguous:
   all vendor codecs map to the same value 0xFF.
 - Updated support function A2DP_BitsSet() so it works for
   up to 64-bit integers.
 - Updated a log message inside l2c_data_write() to print
   packet length and peer MTU on error.

Test: A2DP streaming to AAC headsets
Bug: 30958229
Change-Id: I1b530f1c5c495b8231fd68bed788d4567096683d

7 years agoMerge "Update UUIDs immediately on NVRAM" am: 87cf1322fc
Srinu Jella [Wed, 25 Jan 2017 20:06:46 +0000 (20:06 +0000)]
Merge "Update UUIDs immediately on NVRAM" am: 87cf1322fc
am: 6b46114f5a

Change-Id: Ie8b3c383f711e3a402c531a9a98ee8eb852c6c91

7 years agoMerge "Update UUIDs immediately on NVRAM"
Srinu Jella [Wed, 25 Jan 2017 20:02:15 +0000 (20:02 +0000)]
Merge "Update UUIDs immediately on NVRAM"
am: 87cf1322fc

Change-Id: I7d302edf5c42ceb90f3e1692e243410063218636

7 years agoMerge "Update UUIDs immediately on NVRAM"
Treehugger Robot [Wed, 25 Jan 2017 19:55:59 +0000 (19:55 +0000)]
Merge "Update UUIDs immediately on NVRAM"

7 years agoMerge "Corrected default value assignments in Bluetooth A2DP Metrics" am: df1668926d
Jack He [Wed, 25 Jan 2017 19:33:12 +0000 (19:33 +0000)]
Merge "Corrected default value assignments in Bluetooth A2DP Metrics" am: df1668926d
am: f85d231647

Change-Id: Ie42f410cc3c1df184f20b78d84f0a634c374facb

7 years agoMerge "Corrected default value assignments in Bluetooth A2DP Metrics"
Jack He [Wed, 25 Jan 2017 19:30:42 +0000 (19:30 +0000)]
Merge "Corrected default value assignments in Bluetooth A2DP Metrics"
am: df1668926d

Change-Id: Ibeca5167e014e7ef51da639bcc12d3b2d89ec9b9

7 years agoMerge "Corrected default value assignments in Bluetooth A2DP Metrics"
Treehugger Robot [Wed, 25 Jan 2017 19:28:02 +0000 (19:28 +0000)]
Merge "Corrected default value assignments in Bluetooth A2DP Metrics"

7 years agoUpdate UUIDs immediately on NVRAM
Srinu Jella [Mon, 21 Nov 2016 12:56:58 +0000 (18:26 +0530)]
Update UUIDs immediately on NVRAM

As the BTIF config updation have delay in writing items
to the NVRAM, some times there is a chance of not updating
incase of battery removal happens before the actual write onto
NVRAM.

As SDP UUIDs is important data to store, it will update
immediately onto NVRAM.

Test: manual

Change-Id: I6637dc326f3a53211a5bbf988a2dca1020203128

7 years agoRemove HC_BUFFER_HDR_T
Andre Eisenbach [Wed, 25 Jan 2017 17:26:41 +0000 (09:26 -0800)]
Remove HC_BUFFER_HDR_T

Test: compiles
Change-Id: Ia5bf3395bd5a18a27168f05a0a2239a37ddb2c2c

7 years agoHID: Fix forced disconnection flow. am: 367373ba8b
Ivan Podogov [Wed, 25 Jan 2017 00:14:24 +0000 (00:14 +0000)]
HID: Fix forced disconnection flow. am: 367373ba8b
am: d6cff48023

Change-Id: I9171655b4cfe05e4395d2381461316bd05824a1e

7 years agoHID: Fix forced disconnection flow.
Ivan Podogov [Wed, 25 Jan 2017 00:12:23 +0000 (00:12 +0000)]
HID: Fix forced disconnection flow.
am: 367373ba8b

Change-Id: Ia72cfb5979735bdb2b091291719ac895331bba7e

7 years agoHID: Fix forced disconnection flow.
Ivan Podogov [Thu, 19 Jan 2017 17:19:37 +0000 (17:19 +0000)]
HID: Fix forced disconnection flow.

In some cases, we end up in a state where we can neither
connect nor forcefully end connection, and will require disabling
the Bluetooth adapter to fix this state.

When a device is taking too long to connect (or out of range),
the user may want to cancel the connection by calling disconnect
method, which will be ignored in any state other than
BTA_HD_CONN_ST. It is a lot better to immediately cease the
connection process at this point, so:
- BTA_HD_API_DISCONNECT_EVT is now not ignored in BTA_HD_IDLE_ST;
- bta_hd_disconnect_act now reports a correct MAC address during
    disconnection (it used to send 00:00:00:00:00:00 before);
- HidDevDisconnect now allows to forcefully end the connection,
    and does it in exactly the same way we handle the errors.

When L2CAP connection fails, both hidd_l2cif_config_ind and
hidd_l2cif_config_cfm set conn_state to HID_CONN_STATE_UNUSED,
which is immediately overwritten by the hidd_conn_disconnect call
(it will set conn_state to HID_CONN_STATE_DISCONNECTING, because
ctrl_cid != 0 in both cases), thus making any subsequent calls to
connect failing with "already connecting" error. More than that,
all functions send the HID_DHOST_EVT_CLOSE event when failing,
which is, again, ignored in the BTA_HD_IDLE_ST state. So:
- BTA_HD_INT_CLOSE_EVT is now not ignored in BTA_HD_IDLE_ST;
- conn_state is set to HID_CONN_STATE_UNUSED after the call to
    hidd_conn_disconnect, but before sending the close event.

Test: Build, run, connect/disconnect multiple times.
Change-Id: I85bb03f760bb9a6fd4c1b944d515232c1be12300

7 years agoCorrected default value assignments in Bluetooth A2DP Metrics
Jack He [Fri, 20 Jan 2017 19:17:44 +0000 (11:17 -0800)]
Corrected default value assignments in Bluetooth A2DP Metrics

* In certain cases btif_a2dp_source_stop_audio_req() could be called before
  btif_a2dp_source_start_audio_req() is called, resulting in session_start_us
  to be 0. In this case, audio_duration_ms = time_get_os_boottime_us() - 0
  will be a very large number that is not the actual audio duration. This
  CL marks audio_duration_ms as -1 in the above situation so that we can
  differentiate between valid and invalid audio durations
* Set default timer and counter values to 0 when
  tx_queue_dequeue_stats.total_updates > 1
* Move update_scheduling_stats for tx_queue_enqueue_stats to
  btif_a2dp_source_audio_handle_timer as we intend to capture the time
  intervals for enqueue scheduling instead of time intervals between
  frame enqueue (i.e. one scheduling event can enqueue multiple frames)
* Use tx_queue_enqueue_stats for metrics instead of *dequeue* since only
  enqueue is triggered by timer event

Bug: 33694310
Test: Code compilation, BtFunhausMetricsTest
Change-Id: I10984920afd4d77f07a5ac75736f8dcd69b13af8
(cherry picked from commit 5a9925784a4a34811ae29608b67dee4a580c226b)

7 years agoAdd advertising handle zero quirk am: 6d75adcc03
Jakub Pawlowski [Mon, 23 Jan 2017 23:45:57 +0000 (23:45 +0000)]
Add advertising handle zero quirk am: 6d75adcc03
am: 11438472ac

Change-Id: Ie2266ac54b28fd507cff9026b45a0e6a1b17aa5e

7 years agoAdd advertising handle zero quirk
Jakub Pawlowski [Mon, 23 Jan 2017 23:43:56 +0000 (23:43 +0000)]
Add advertising handle zero quirk
am: 6d75adcc03

Change-Id: I520cd3d1aff332d9eb0ccce13f36dc0aceb2f25e

7 years agoAdd advertising handle zero quirk
Jakub Pawlowski [Mon, 23 Jan 2017 22:03:19 +0000 (14:03 -0800)]
Add advertising handle zero quirk

Some controllers are strict about VSC handle mapping, and don't allow
using zero value.

Test: manual test
Change-Id: Ia2df17af16e0e4da375d6e7d5b5f882ced508ce9

7 years agoFix the GATT server and HOGP disconnect am: c176ff364e
IHLHO KIM [Mon, 23 Jan 2017 19:00:55 +0000 (19:00 +0000)]
Fix the GATT server and HOGP disconnect am: c176ff364e
am: f83cdcb7fc

Change-Id: If46dcdd664c3a433b0c16acac955acb2c79ffa2a

7 years agoFix the GATT server and HOGP disconnect
IHLHO KIM [Mon, 23 Jan 2017 18:56:56 +0000 (18:56 +0000)]
Fix the GATT server and HOGP disconnect
am: c176ff364e

Change-Id: I13a676f6d9beac6f5cf07960c8b9cfe4fc2a7a68

7 years agoFix the GATT server and HOGP disconnect
IHLHO KIM [Fri, 13 Jan 2017 06:27:38 +0000 (06:27 +0000)]
Fix the GATT server and HOGP disconnect

GATT server disconnect and HOGP disconnect are not working after the
following commit: a62adcab30929566b435891611232566bd69204a.

‘BTA_GATTS_CancelOpen’ makes ‘gatt_update_app_hold_link_status’
return FALSE value. As a result, ‘BTA_GATTS_Close’ cannot disconnect
the link. The sequence has to be changed like GATT client.

And the above mentioned fix removed ‘found’ checking routine in
‘gatt_update_app_hold_link_status’.

It makes two app hold links with same gatt_if when HOGP is connected and
background connection is added. But HOGP disconnect removes only one held
link. So HOGP is never disconnected.

The ‘found’ checking routine has to be rolled back.

Test: manual
Change-Id: Ibea825b5cc844195f0cf4a30cbcca831880c9088

7 years agoFix advertising timeout behaviour. am: 657baed5df
Jakub Pawlowski [Sat, 21 Jan 2017 09:03:38 +0000 (09:03 +0000)]
Fix advertising timeout behaviour. am: 657baed5df
am: abf317c0a1

Change-Id: I96c1977d4fa186c513a5c55215d59f70d5b21d96

7 years agoFix advertising timeout behaviour.
Jakub Pawlowski [Sat, 21 Jan 2017 08:59:37 +0000 (08:59 +0000)]
Fix advertising timeout behaviour.
am: 657baed5df

Change-Id: I026f8798a67438e200f0a1b9c078776d7065e419

7 years agoFix advertising timeout behaviour.
Jakub Pawlowski [Fri, 20 Jan 2017 13:33:38 +0000 (05:33 -0800)]
Fix advertising timeout behaviour.

When advertising is enabled with timeout, enable callback was not
called. Also we were not scheduling the disable operation after the
timeout passes. This patch fixes that. It also make sure that the
timeout callback is called on proper thread.

Bug: 34440704
Test: sl4a ConcurrentBleAdvertising:test_timeout
Change-Id: I233c2692c690f55ef6243325640e48b37818c9d5

7 years agoMerge "Set alarm's queue to NULL on alarm expired" am: 1ad559cf00
Kamal Negi [Fri, 20 Jan 2017 23:43:59 +0000 (23:43 +0000)]
Merge "Set alarm's queue to NULL on alarm expired" am: 1ad559cf00
am: 0ff83d9a87

Change-Id: I753305fafe1b675eb5f48ccd701165c2c3118443

7 years agoMerge "Set alarm's queue to NULL on alarm expired"
Kamal Negi [Fri, 20 Jan 2017 23:40:29 +0000 (23:40 +0000)]
Merge "Set alarm's queue to NULL on alarm expired"
am: 1ad559cf00

Change-Id: Icfe0576b893be813645375f3da234ee7a3fa4455

7 years agoMerge "Set alarm's queue to NULL on alarm expired"
Treehugger Robot [Fri, 20 Jan 2017 23:36:39 +0000 (23:36 +0000)]
Merge "Set alarm's queue to NULL on alarm expired"

7 years agoMerge "Synchronize hl data operations" am: 0d8bb2b099
Srinu Jella [Fri, 20 Jan 2017 23:33:30 +0000 (23:33 +0000)]
Merge "Synchronize hl data operations" am: 0d8bb2b099
am: cac856b821

Change-Id: I48c2c0d1431bf5a8ab1a77d887460d3e3a52a650

7 years agoMerge "Synchronize hl data operations"
Srinu Jella [Fri, 20 Jan 2017 23:29:57 +0000 (23:29 +0000)]
Merge "Synchronize hl data operations"
am: 0d8bb2b099

Change-Id: I65ef2e27332de47e921f15aaca76668cc75f9567

7 years agoMerge "Synchronize hl data operations"
Treehugger Robot [Fri, 20 Jan 2017 23:25:44 +0000 (23:25 +0000)]
Merge "Synchronize hl data operations"

7 years agoUpdate error check for LE read remote feature event am: 86d5b5658c
Nagarjuna Kristam [Fri, 20 Jan 2017 21:44:21 +0000 (21:44 +0000)]
Update error check for LE read remote feature event am: 86d5b5658c
am: 623a6d4f63

Change-Id: I209d901733690f8ace8855865370738fd304e9a9

7 years agoUpdate error check for LE read remote feature event
Nagarjuna Kristam [Fri, 20 Jan 2017 21:41:23 +0000 (21:41 +0000)]
Update error check for LE read remote feature event
am: 86d5b5658c

Change-Id: Icdb02974837695995dacb1598772d4b46af66d9b

7 years agoUpdate error check for LE read remote feature event
Nagarjuna Kristam [Tue, 13 Dec 2016 09:00:45 +0000 (14:30 +0530)]
Update error check for LE read remote feature event

When a BLE remote read remote feature complete event is received
initial commands flow is proceeding if error code is not connection
failed to establish (0x3E). Instead, the flow should fail on any
error.

Test: Re-connection stress tests with LE device
Change-Id: I4ab80b6601f5f852fcf8da2911807438584fd3f4

7 years agoSet alarm's queue to NULL on alarm expired
Kamal Negi [Mon, 19 Sep 2016 08:46:56 +0000 (14:16 +0530)]
Set alarm's queue to NULL on alarm expired

Use Case: Repeated BT ON/OFF

Failure: ANR due to race condition between random advertisement
address generation completion(adv_raddr_timer) and BT shutdown.

Steps: SNS Stress testing.

Root Cause: Race condition happens between random advertisement
address generation completion(adv_raddr_timer) and BT shutdown.

Fix:  For non-periodic alarms, set alarm's queue to NULL once alarm
expired.

Test: mm -j8

Change-Id: Idf8e2bebdc2ca7621aef06dd5f2075ef2c5fa08c

7 years agoBluetooth: Handle get RSSI timeout gracefully am: b0014dae41
Satish Kodishala [Fri, 20 Jan 2017 21:26:48 +0000 (21:26 +0000)]
Bluetooth: Handle get RSSI timeout gracefully am: b0014dae41
am: 8fe142c111

Change-Id: Ib667ace75390ab1c969aac216e3babb58ea82dfa

7 years agoBluetooth: Handle get RSSI timeout gracefully
Satish Kodishala [Fri, 20 Jan 2017 21:25:49 +0000 (21:25 +0000)]
Bluetooth: Handle get RSSI timeout gracefully
am: b0014dae41

Change-Id: I55f9d891c58b82e12073fe57d1d19bdf64f6019d

7 years agoBTA HF CLIENT: Unset initial SCO value am: 882760d186
Sanket Agarwal [Fri, 20 Jan 2017 21:25:49 +0000 (21:25 +0000)]
BTA HF CLIENT: Unset initial SCO value am: 882760d186
am: 7aec0a91c5

Change-Id: I238b52168be022d5112b70bcff06d2a5381a7c19

7 years agoBTA HF CLIENT: Unset initial SCO value
Sanket Agarwal [Fri, 20 Jan 2017 21:21:48 +0000 (21:21 +0000)]
BTA HF CLIENT: Unset initial SCO value
am: 882760d186

Change-Id: I1342f805da9d37e542e137bad9eda54bab8287c2

7 years agoSynchronize hl data operations
Srinu Jella [Wed, 30 Nov 2016 09:55:12 +0000 (15:25 +0530)]
Synchronize hl data operations

Use Case: BT crash seen while transferring data
using HDP APP to remote health device.

Steps:
1. Pair with HDP device
2. Run HDP APP and transfer data to Remote HDP device.

Failure: BT automatically resets and recovers.

Root Cause: Synchronize BITF HL free buffer as simultaneously
free buffer from BTIF and BTU thread lead to sigabort.

Fix: Validate Tx packet before memcpy as it can be free
from different thread.

Test: mm -j8
Change-Id: I566f62ce02c8e95c9f4b8d7155132e4434657f66

7 years agoBluetooth: Handle get RSSI timeout gracefully
Satish Kodishala [Tue, 20 Dec 2016 05:31:07 +0000 (11:01 +0530)]
Bluetooth: Handle get RSSI timeout gracefully

Usecase:
1. Turn ON BT
2. Pair and connect with Headset
3. Play Music over A2DP
4. Make GetRssi timeout
5. Bt app crashes

Failure:
BT app crashes.

Rootcause:
Calling callback with NULL and in callback handling NULL check with assert.

Fix:
Call the callback with error instead of NULL.

Change-Id: I20a9e504a513697945cd76d218ec12a0ef1e3330

7 years agoBTA HF CLIENT: Unset initial SCO value
Sanket Agarwal [Fri, 20 Jan 2017 19:06:41 +0000 (11:06 -0800)]
BTA HF CLIENT: Unset initial SCO value

Initialize the block with invalid SCO state so that while allocating the
if condition does not ignore the block. This was causing the stack to
not initiate a SCO connection to the remote (AG role)

Bug: b/33555377
Test: Check for SCO initialied on audio call
Change-Id: I3f5619c69288483bfa45c2a1adcf22008e353841

7 years agoFix A2DP Metrics Logging Capacity am: a3f831cc74
Jack He [Fri, 20 Jan 2017 04:02:16 +0000 (04:02 +0000)]
Fix A2DP Metrics Logging Capacity am: a3f831cc74
am: 1cac42b5da

Change-Id: I85fd2f52849365593106e7f45bdcdb9c493d2f0a

7 years agoFix A2DP Metrics Logging Capacity
Jack He [Fri, 20 Jan 2017 03:53:20 +0000 (03:53 +0000)]
Fix A2DP Metrics Logging Capacity
am: a3f831cc74

Change-Id: I6a790aae682f6b8282de219a286f82bdca4503b5

7 years agoFix A2DP Metrics Logging Capacity
Jack He [Tue, 17 Jan 2017 23:41:30 +0000 (15:41 -0800)]
Fix A2DP Metrics Logging Capacity

* Set the maximum number of wake events logged to 1000
* Stop logging wake log name as it takes too much memory
* Add counters for each of the repeated values in BluetoothLog so that
  the true number of events can be determined while oldest event get
  dropped
* Log Bluetooth session disconnect reasons using enum instead of string
  in order to save memory usage
* Apply other branch changes to bluetooth.proto on system/bt

Bug: 33694310
Test: Code compilation and unit tests
Change-Id: I2cc6f9304725938b63b211d615eb1941eac60edf
(cherry picked from commit 7ab4b59672013eddcb706e288962ab7309a75628)

7 years agotest_vendor: Remove extra byte in LE Features am: a72fc53164
Myles Watson [Thu, 19 Jan 2017 23:25:43 +0000 (23:25 +0000)]
test_vendor: Remove extra byte in LE Features am: a72fc53164
am: e13ce6b773

Change-Id: Ibf2b67f0165db5ff470bbadc7979931caff5b713

7 years agotest_vendor: Remove extra byte in LE Features
Myles Watson [Thu, 19 Jan 2017 23:23:09 +0000 (23:23 +0000)]
test_vendor: Remove extra byte in LE Features
am: a72fc53164

Change-Id: If703d5f52b0ee55338f0f3c24c5c6cad113fe108

7 years agotest_vendor: Remove extra byte in LE Features
Myles Watson [Thu, 19 Jan 2017 21:13:55 +0000 (13:13 -0800)]
test_vendor: Remove extra byte in LE Features

Bug: 34357009
Test: push test-vendor lib as libbt-vendor.so, Bluetooth starts
Change-Id: Id3a5f85f6b3da5a723dba04527db8b66de0e84a8

7 years agoFix bad UUID comparison when adding GATT service am: 33f424d493
Jakub Pawlowski [Thu, 19 Jan 2017 14:53:49 +0000 (14:53 +0000)]
Fix bad UUID comparison when adding GATT service am: 33f424d493
am: bd6197aae4

Change-Id: I8290d2055f06a869b964840bc205b8b8b89925b6

7 years agoFix bad UUID comparison when adding GATT service
Jakub Pawlowski [Thu, 19 Jan 2017 14:51:18 +0000 (14:51 +0000)]
Fix bad UUID comparison when adding GATT service
am: 33f424d493

Change-Id: I8552b9aa41c0852672a5ecf63ea39b8a289d27df

7 years agoFix bad UUID comparison when adding GATT service
Jakub Pawlowski [Thu, 19 Jan 2017 06:58:53 +0000 (22:58 -0800)]
Fix bad UUID comparison when adding GATT service

This patch fixes bad comparison in add_service_impl. Instead of checking
wether service is one of two excluded services, it was excluding all
services.

Test: sl4a GatReadTest
Bug: 34280184
Change-Id: I3195e94b6fafe4d2e3c61fc7bfd7398c2855b78e

7 years agoMerge "test_vendor: Make tryStartThread return 0 on success" am: 91b994faa6
Jorge E. Moreira [Thu, 19 Jan 2017 14:32:16 +0000 (14:32 +0000)]
Merge "test_vendor: Make tryStartThread return 0 on success" am: 91b994faa6
am: 0e462b4c9b

Change-Id: If36b548d7b58060d920caef2fea0d13f3fe3e596

7 years agoMerge "test_vendor: Make tryStartThread return 0 on success"
Jorge E. Moreira [Thu, 19 Jan 2017 14:30:13 +0000 (14:30 +0000)]
Merge "test_vendor: Make tryStartThread return 0 on success"
am: 91b994faa6

Change-Id: I54671e84b39953a5e38e7b41a5275800de9c06b4

7 years agoMerge "test_vendor: Make tryStartThread return 0 on success"
Treehugger Robot [Thu, 19 Jan 2017 14:26:33 +0000 (14:26 +0000)]
Merge "test_vendor: Make tryStartThread return 0 on success"

7 years agotest_vendor: Make tryStartThread return 0 on success
Jorge E. Moreira [Thu, 19 Jan 2017 00:34:42 +0000 (16:34 -0800)]
test_vendor: Make tryStartThread return 0 on success

Test: Start the test vendor library with no error message
Bug: 34357009
Change-Id: Id2821199ad675e2b95a9f333afa803dcced811a3

7 years agoFix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR am: a643b5b0df
Jack He [Thu, 19 Jan 2017 03:40:09 +0000 (03:40 +0000)]
Fix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR am: a643b5b0df
am: 4c56d8f849

Change-Id: I5dcd31ca425b25286fb86ca0e48015c4514f3b8d

7 years agoFix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR
Jack He [Thu, 19 Jan 2017 03:37:37 +0000 (03:37 +0000)]
Fix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR
am: a643b5b0df

Change-Id: I3c4d7ccfcfbcb0faa151776ecd325891d14f38f5

7 years agoFix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR
Jack He [Thu, 19 Jan 2017 01:14:08 +0000 (17:14 -0800)]
Fix parser for BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR

* Current parser does not support multi-directory lists, which may cause
  a build failure if BoardConfig.mk defines one.
* This CL splits the list of directories using whitespace and adds them
  individually to the include list

Bug: 34396100
Test: Code compilation, no user visible effect
Change-Id: I59e901d76d1bc20f50b54941a3007c5521ded214

7 years agoConvert build system to soong using Android.bp am: e2eeff4f7f
Jack He [Wed, 18 Jan 2017 22:20:18 +0000 (22:20 +0000)]
Convert build system to soong using Android.bp am: e2eeff4f7f
am: bfd636ce15

Change-Id: Id194d1c543cc52f52e93016f3ae37a3207527219

7 years agoConvert build system to soong using Android.bp
Jack He [Wed, 18 Jan 2017 22:19:17 +0000 (22:19 +0000)]
Convert build system to soong using Android.bp
am: e2eeff4f7f

Change-Id: I1caf32ca845b33d414582f972e89229949c439cf

7 years agoConvert build system to soong using Android.bp
Jack He [Thu, 8 Dec 2016 02:25:17 +0000 (18:25 -0800)]
Convert build system to soong using Android.bp

* Convert top level Android.mk into build templates in build/Android.bp
  and build/fluoride.go
* Initial conversion is done by "androidmk Android.mk > Android.bp"
* Android.bp does not allow source inclusion from external directories
  and therefore they have to be made in to cc_library_static in their
  respective sub-directories and linked using whole_static_libs in the
  modules where they are used
* As Android.bp does not allow multiple modules of the same name,
  same-name mudules for different target are merged into one definition
  with target specific setup
* Generated proto header path has to be changed in osi/src/metrics.cc as
  Android.bp only generate header path relative to the Android.bp file
  instead of top-level directory such as system/bt
* Android.bp does not support resource copying yet and hence conf files
  are left un-touched.
* Android.bp does support conditional module declaration and therefore
  test-vendor libs are left untouched except for unit tests
* The goal of this CL is to direct (almost) translate Android.mk to
  Android.bp first with Android.bp specific optimizations coming later

Bug: 32958753
Test: Code compilation, manual testing by test team

Change-Id: I5249e1f2135c4121205619b1d735ce448feb7499

7 years agoMerge "HF CLIENT BTA: Reduce logging for non-allocated blocks" am: 7b70d1e420
Sanket Agarwal [Wed, 18 Jan 2017 20:43:07 +0000 (20:43 +0000)]
Merge "HF CLIENT BTA: Reduce logging for non-allocated blocks" am: 7b70d1e420
am: 10f9c1d487

Change-Id: Id529230bcbaa5c6d730fd080da1b9373bd10397b

7 years agoMerge "HF CLIENT BTA: Reduce logging for non-allocated blocks"
Sanket Agarwal [Wed, 18 Jan 2017 20:41:06 +0000 (20:41 +0000)]
Merge "HF CLIENT BTA: Reduce logging for non-allocated blocks"
am: 7b70d1e420

Change-Id: I4a196410b5517c2a4231deea4b12c79c6b1e3b3f

7 years agoMerge "HF CLIENT BTA: Reduce logging for non-allocated blocks"
Treehugger Robot [Wed, 18 Jan 2017 20:34:59 +0000 (20:34 +0000)]
Merge "HF CLIENT BTA: Reduce logging for non-allocated blocks"

7 years agoHID: Prevent crash by Cancelling SDP during cleanup am: 8ed9a77792
Hemant Gupta [Wed, 18 Jan 2017 20:18:04 +0000 (20:18 +0000)]
HID: Prevent crash by Cancelling SDP during cleanup am: 8ed9a77792
am: 378900c9aa

Change-Id: Ibfb0232678d95aa0dc362a56914bfb2c6257a2c4

7 years agoHID: Prevent crash by Cancelling SDP during cleanup
Hemant Gupta [Wed, 18 Jan 2017 20:16:04 +0000 (20:16 +0000)]
HID: Prevent crash by Cancelling SDP during cleanup
am: 8ed9a77792

Change-Id: I6020ab9443f3e674511ef88116fcaa0ea9a727ba

7 years agoHF CLIENT BTA: Reduce logging for non-allocated blocks
Sanket Agarwal [Wed, 18 Jan 2017 01:37:10 +0000 (17:37 -0800)]
HF CLIENT BTA: Reduce logging for non-allocated blocks

Bug: b/33552136
Test: adb shell dumpsys bluetooth_manager
Change-Id: I3cb6c28bffe6b335cf82cac63dc78ce4957d78f4

7 years agoHID: Prevent crash by Cancelling SDP during cleanup
Hemant Gupta [Fri, 9 Dec 2016 17:40:10 +0000 (23:10 +0530)]
HID: Prevent crash by Cancelling SDP during cleanup

Usecase:
1) User tried to connect to HID Device.
2) SDP is internally performed by DUT. SDP is at stage,
   where L2CAP connection, configuration is done, and data
   fetch is ongoing.
3) BT was turned off from UI.
Observation:
BT crashed while accessing memory that was freed already because BT turn off,
caused ACL disconnection, leading to L2CAP disconnect indication in stack,
leading to sdp disconnect indication.
backtrace:
    #00 pc 000f98d4  /system/lib/hw/bluetooth.default.so (SDP_FindServiceUUIDInDb+51)
    #01 pc 000b5dbd  /system/lib/hw/bluetooth.default.so (hidh_search_callback+0x40)
    #02 pc 000f770b  /system/lib/hw/bluetooth.default.so (sdp_disconnect_ind+0x5e)
    #03 pc 00107a5f  /system/lib/hw/bluetooth.default.so (l2c_csm_execute+3446)
    #04 pc 001080e7  /system/lib/hw/bluetooth.default.so (l2c_link_hci_disc_comp+122)
    #05 pc 000fda81  /system/lib/hw/bluetooth.default.so (btu_hcif_process_event+588)
    #06 pc 000fec81  /system/lib/hw/bluetooth.default.so (btu_hci_msg_ready+96)
    #07 pc 00118191  /system/lib/hw/bluetooth.default.so
    #08 pc 0011917f  /system/lib/hw/bluetooth.default.so
    #09 pc 00041993  /system/lib/libc.so (_ZL15__pthread_startPv+30)
    #10 pc 000192b5  /system/lib/libc.so (__start_thread+6)
Register Dump
pid: 15740, tid: 15761, name: bluedroid wake/  >>> com.android.bluetooth <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20000
    r0 815a5cac  r1 a1a2f370  r2 00000000  r3 85d4e541
    r4 00020000  r5 815a5cac  r6 a1a2f370  r7 b6d3ae40
    r8 00000000  r9 b6d3ae40  sl 00000002  fp 00000013
    ip a228c050  sp a1a2f360  lr a20eddc1  pc a21318d4  cpsr 200e0030
Rootcause
The above scenario could lead to crash we see as below, as bta_hh_cb.p_disc_db would be freed
during HID Host cleanup, and would be accessed via callback received for parsing SDP results on
SDP completion.
Fix:
While cleaning up HID Host, Cancel SDP search before freeing and resetting bta_hh_cb.p_disc_db.
This will internally send L2CAP disconnect request for SDP, and would lead to sdp_disconnect_cfm
call when L2CAP is disconnected, and would lead to call of hidh_search_callback with result code
as SDP_CANCEL.

Change-Id: I63563cb23dd69946f87a70cafa203c44edc9b753

7 years agoAdd conditional unit testing for codecs that might not be on the device am: 4decac33f6
Pavlin Radoslavov [Wed, 18 Jan 2017 02:13:06 +0000 (02:13 +0000)]
Add conditional unit testing for codecs that might not be on the device am: 4decac33f6
am: 2ead0be903

Change-Id: Ibb8af4cac0986f2b387be06c585a7593400e0e2d

7 years agoAdd conditional unit testing for codecs that might not be on the device
Pavlin Radoslavov [Wed, 18 Jan 2017 02:10:34 +0000 (02:10 +0000)]
Add conditional unit testing for codecs that might not be on the device
am: 4decac33f6

Change-Id: I9ac89df8897be966206020361ec3b4681aeb9681

7 years agoAdd conditional unit testing for codecs that might not be on the device
Pavlin Radoslavov [Sat, 14 Jan 2017 01:42:01 +0000 (17:42 -0800)]
Add conditional unit testing for codecs that might not be on the device

Codecs like aptX and aptX-HD are supported on the device if the
corresponding shared library is installed.
Fix the unit tests to conditionally test for aptX/aptX-HD.

Also, update function descriptions in files a2dp_sbc.h and
a2dp_vendor_ldac.h .

Test: Running unit tests on a device that doesn't have aptX/aptX-HD
Change-Id: I44dc275ca6e0cb5438ee6ed0b6213213d56592f4

7 years agoFix a NULL-pointer access before check in connect_int am: 9b2e40df05
liuchao [Tue, 17 Jan 2017 20:13:40 +0000 (20:13 +0000)]
Fix a NULL-pointer access before check in connect_int am: 9b2e40df05
am: 73af061500

Change-Id: I596eaaa5f8e1919e75f4332534f480057465cb54

7 years agoFix a NULL-pointer access before check in connect_int
liuchao [Tue, 17 Jan 2017 20:11:25 +0000 (20:11 +0000)]
Fix a NULL-pointer access before check in connect_int
am: 9b2e40df05

Change-Id: I3217f206ef56d73dbac01b19eeb123b6cfb68870

7 years agoFix a NULL-pointer access before check in connect_int
liuchao [Wed, 4 Jan 2017 05:49:36 +0000 (13:49 +0800)]
Fix a NULL-pointer access before check in connect_int

This fixes a potential NULL-pointer access in case cb is returned NULL

Test: mm -j 8
Change-Id: Iaf7aa0ba736b5cb161811726b4aaea7f1ab7e5b3

7 years agoMerge "Reduced the log verbosity level for aptX/aptX-HD data packets" am: 5256f1feea
Pavlin Radoslavov [Tue, 17 Jan 2017 19:56:59 +0000 (19:56 +0000)]
Merge "Reduced the log verbosity level for aptX/aptX-HD data packets" am: 5256f1feea
am: 76efc23846

Change-Id: I38cf5bdaff222dbd7328f04bf82da3c5cc056ab6

7 years agoDon't allow GATT and GAP service override am: 8a06ff5ce2
Jakub Pawlowski [Tue, 17 Jan 2017 19:56:48 +0000 (19:56 +0000)]
Don't allow GATT and GAP service override am: 8a06ff5ce2
am: 3b672538ba

Change-Id: I235d976c6e1e1ab80fdc3a457f5ea776281a309a

7 years agoMerge "Reduced the log verbosity level for aptX/aptX-HD data packets"
Pavlin Radoslavov [Tue, 17 Jan 2017 19:50:19 +0000 (19:50 +0000)]
Merge "Reduced the log verbosity level for aptX/aptX-HD data packets"
am: 5256f1feea

Change-Id: I762b7e65001740fec55515f7121f5217c4dbb455

7 years agoDon't allow GATT and GAP service override
Jakub Pawlowski [Tue, 17 Jan 2017 19:50:04 +0000 (19:50 +0000)]
Don't allow GATT and GAP service override
am: 8a06ff5ce2

Change-Id: I9eaff8a251269b3f073845c80284fefde35822b4

7 years agoMerge "Reduced the log verbosity level for aptX/aptX-HD data packets"
Treehugger Robot [Tue, 17 Jan 2017 19:42:53 +0000 (19:42 +0000)]
Merge "Reduced the log verbosity level for aptX/aptX-HD data packets"

7 years agoFix NPE when discovering invalid GATT datatbase am: 8957fdca4f
Jakub Pawlowski [Tue, 17 Jan 2017 19:06:07 +0000 (19:06 +0000)]
Fix NPE when discovering invalid GATT datatbase am: 8957fdca4f
am: 1637dc7990

Change-Id: I1e9710d05b0276106c0fd19604db2b9db5cde257

7 years agoFix NPE when discovering invalid GATT datatbase
Jakub Pawlowski [Tue, 17 Jan 2017 18:46:10 +0000 (18:46 +0000)]
Fix NPE when discovering invalid GATT datatbase
am: 8957fdca4f

Change-Id: I1e196651928314494a696e5a3ef126272dd3208a

7 years agoDon't allow GATT and GAP service override
Jakub Pawlowski [Mon, 16 Jan 2017 12:53:14 +0000 (04:53 -0800)]
Don't allow GATT and GAP service override

Those services are automatically added by the stack, and overriding them
results in invalid GATT database being created.

Bug: 34280184
Test: Manual test
Change-Id: Ie6a09e9d606e40066bef6f6a2c934eacd17bf53b

7 years agoFix NPE when discovering invalid GATT datatbase
Jakub Pawlowski [Mon, 16 Jan 2017 12:05:57 +0000 (04:05 -0800)]
Fix NPE when discovering invalid GATT datatbase

When doing a discovery of invalid GATT database, where two services are
added with same start handle, characteristics are added to the first
one, where descriptors are added to the later. This cause NPE when
adding descriptor.

Bug: 34280184
Test: manual test
Change-Id: I27619098df33a641cb089b82cf4d4ffd3c6e6aea

7 years agoReduced the log verbosity level for aptX/aptX-HD data packets
Pavlin Radoslavov [Sat, 14 Jan 2017 07:24:25 +0000 (23:24 -0800)]
Reduced the log verbosity level for aptX/aptX-HD data packets

Also, fixed a typo in a log message.

Test: A2DP streaming to headset, and capturing "adb logcat" output
Change-Id: I525d78e3ebde334857261f0cbd256a7f6a946e96

7 years agoFix for Extended Scan parameter length am: 0c86aad3f5
Reddy Praveen [Tue, 17 Jan 2017 10:07:58 +0000 (10:07 +0000)]
Fix for Extended Scan parameter length am: 0c86aad3f5
am: a41493f386

Change-Id: Id57ec583ff0a29a5dfdaf2aee449fd7e6d5414c6

7 years agoFix for Extended Scan parameter length
Reddy Praveen [Tue, 17 Jan 2017 09:54:28 +0000 (09:54 +0000)]
Fix for Extended Scan parameter length
am: 0c86aad3f5

Change-Id: I561461bd6b119912ef53dfbca923f2aac9b3fad7

7 years agoFix for Extended Scan parameter length
Reddy Praveen [Fri, 13 Jan 2017 11:27:37 +0000 (16:57 +0530)]
Fix for Extended Scan parameter length

With BT 5.0 extended advertisement scan parameter length
is configured with correct value.

Test: BT scan from settings menu
Change-Id: I749099282a9f2cf190d4f9576649aefe88564809
Signed-off-by: Reddy Praveen <praveen.reddy@intel.com>
7 years agoRemoved the feeding_init call from tA2DP_ENCODER_INTERFACE am: f8e2670d12
Pavlin Radoslavov [Fri, 13 Jan 2017 18:46:18 +0000 (18:46 +0000)]
Removed the feeding_init call from tA2DP_ENCODER_INTERFACE am: f8e2670d12
am: a7d87c4c12

Change-Id: I4b28e24b3fad9248028bae23038a12d8c4b67ce8

7 years agoRemoved the feeding_init call from tA2DP_ENCODER_INTERFACE
Pavlin Radoslavov [Fri, 13 Jan 2017 18:44:20 +0000 (18:44 +0000)]
Removed the feeding_init call from tA2DP_ENCODER_INTERFACE
am: f8e2670d12

Change-Id: I716d1c077b089345c08ca76ccf2823ac1ff6d8e3

7 years agoRemoved the feeding_init call from tA2DP_ENCODER_INTERFACE
Pavlin Radoslavov [Wed, 11 Jan 2017 18:35:15 +0000 (10:35 -0800)]
Removed the feeding_init call from tA2DP_ENCODER_INTERFACE

The feeding_init call is not used anymore - it has been superseded
by the newer A2dpCodecs.setCodecAudioConfig() mechanism.

Also, moved aptx_init_framing_params() and aptx_hd_init_framing_params()
calls to the corresponding encoder_update functions.

Test: A2DP streaming to Bluetooth headsets
Change-Id: I52f42b4701d04fe2ddb8f115bb9cd57fe38e2b38

7 years agoIntegrated A2DP LDAC support with the LDAC encoder library am: d556b752bd
Pavlin Radoslavov [Tue, 10 Jan 2017 23:10:49 +0000 (23:10 +0000)]
Integrated A2DP LDAC support with the LDAC encoder library am: d556b752bd
am: 95c78b6741

Change-Id: I7c1f807c2ede174d4682e2acf6ced396b1b19356

7 years agoIntegrated A2DP LDAC support with the LDAC encoder library
Pavlin Radoslavov [Tue, 10 Jan 2017 23:03:39 +0000 (23:03 +0000)]
Integrated A2DP LDAC support with the LDAC encoder library
am: d556b752bd

Change-Id: Ib0d6db87f7f30ac7544bf2e5764b7dda0d1a24f9

7 years agoIntegrated A2DP LDAC support with the LDAC encoder library
Pavlin Radoslavov [Tue, 10 Jan 2017 21:18:14 +0000 (13:18 -0800)]
Integrated A2DP LDAC support with the LDAC encoder library

* Add compile-time dependency on the libldacBT_enc module
  in external/libldac
* Use the <ldacBT.h> header and remove local typedefs and defines

Also, fix an initialization issue of the LDAC handler
inside file a2dp_vendor_ldac_encoder.cc

Bug: 30958229
Test: A2DP streaming to LDAC headset
Change-Id: I3757230c9901509daab36f2b2018faa05490171d

7 years agoMerge "Serialize stack shutdown, state change callback and cleanup" into cw-f-dev
Jacky Cheung [Tue, 10 Jan 2017 18:12:21 +0000 (18:12 +0000)]
Merge "Serialize stack shutdown, state change callback and cleanup" into cw-f-dev
am: 718b632f2b

Change-Id: I59546b88705ca7a9748bc3a41ad0a382caada0fe