OSDN Git Service
Andre Eisenbach [Wed, 30 Mar 2016 18:01:22 +0000 (18:01 +0000)]
Remove unused p_db for A2DP service discovery
am:
895c094
* commit '
895c09477932acb3888961ac7d1c122c36f067d1':
Remove unused p_db for A2DP service discovery
Change-Id: I7b61ce31db707f4c672da5b6af4938c06dfa9a04
Andre Eisenbach [Fri, 25 Mar 2016 23:48:44 +0000 (16:48 -0700)]
Remove unused p_db for A2DP service discovery
This fixes a crash (SIGSEGV) when re-connecting A2DP devices where the
SDP pointer was incorrectly reset to 0.
Bug:
27852645
Change-Id: Ie40b7e57fc117c6fe7a42020600745ef348b503c
Pavlin Radoslavov [Sat, 26 Mar 2016 01:55:30 +0000 (18:55 -0700)]
Don't destroy BTIF Device Management state during shutdown
Don't call btif_dm_cleanup() during stack shutdown stage,
because it will destroy/free internal state that might be used
later in the shutdown process.
Instead, btif_dm_cleanup() should happen during the stack
cleanup stage.
Also, added an unit test to capture the original issue.
Bug:
27856457
Change-Id: I8575537ad744cf4e6770046b779b6a53de93d66e
Jakub Pawlowski [Sat, 26 Mar 2016 05:31:41 +0000 (22:31 -0700)]
linux build fix
Change-Id: Ibec71d18e664f575f73a472b7a522e87c3a1efa8
Zhao Xuewen [Thu, 4 Feb 2016 03:20:14 +0000 (11:20 +0800)]
Bluetooth: Fix the issue that peer A2DP SNK device can not auto-reconnect.
If peer A2DP SNK disconnected by some reason, the device will reject reconnection request from peer.
This CL will judge the peer device is A2DP SRC, will reject the reconnection request.
So if peer device is A2DP SNK, will accept the reconnection request.
BUG:
26274393
Change-Id: Idecef527a763693f08d76d90512546f013312aa1
Signed-off-by: z00184990 <z00184990@notesmail.huawei.com>
Signed-off-by: Zhao Xuewen <zhaoxuewen@huawei.com>
Hall Liu [Sat, 20 Feb 2016 01:20:08 +0000 (17:20 -0800)]
Stop turning on SCO audio automatically during call
Remove some code that turns on SCO audio automatically when a device
connects, since Telecom should be responsible for routing audio to
bluetooth during a call.
Bug:
22507913
Change-Id: Iabf9cb8dd77d47505e87d865f8208268d9b417b7
Jakub Pawlowski [Tue, 16 Feb 2016 19:53:14 +0000 (11:53 -0800)]
service: use AIDL
Change-Id: Ic6261a9bafc65a5534f4e580ef9cae1fa82b4086
Jakub Pawlowski [Tue, 16 Feb 2016 04:18:19 +0000 (20:18 -0800)]
service: use Parcelable instead of helpers
In order to user .aidl in the future, all types will have to be
parcelable. We don't add Parcelable to base types, as they might
be also used with other transports than binder in future.
Change-Id: I88e6961e69ac0e5d04bd4b6fe3cd7d79bd6f73ba
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
Nitin Shivpure [Fri, 15 Jan 2016 11:04:37 +0000 (16:34 +0530)]
HID: Fix to show mouse pointer movements on UI
As per the UHID implementation, UHID_OPEN & UHID_CLOSE
can be ignored, but it is useful for power-management.
Since these events are handled on hid host, ready_for_data
needs to be set to TRUE. Previously the hid reports were not
sent to kernel UHID driver leading to no mouse pointer movement
on UI of DUT.
Change-Id: I708f5be4240f07826c6eefc5404af3e42f80cfa4
Mallikarjuna GB [Mon, 1 Jun 2015 07:28:38 +0000 (12:58 +0530)]
Initiate SCO after Mode change event
Use case:
1. Connect a headset to AG.
2. Make an outgoing call using headset.
Failure:
SCO connection request is rejected by headset.
Root cause:
AG initiated SCO connection when mode change is pending
on headset. Remote is coming out of sniff and rejected
SCO connection request.
Fix:
AG initiates SCO connection request once AG receives mode
change event. It resolves a corner case where remote failed
to accept SCO connection when initiated in between unsniff
LMP request. Issue is seen with WEP301 headset.
Change-Id: I4ea5d073630320b30f90e6141f4daf25943cca0b
Mallikarjuna GB [Sat, 30 May 2015 18:03:58 +0000 (23:33 +0530)]
Avoid sending SCO disconnect when power mode is processing
Use case:
1. Pair and connect with Mercedes car kit.
2. Answer incoming call by phone or car kit.
3. Switch audio between car kit and phone.
4. Repease 1-3 steps.
Failure:
Car kit is going into bad state and not accepting SCO disconnect.
Root cause:
Phone has sent SCO disconnect command to car kit when
power mode command(sniff/unsniff) is in the processing
on the ACL where SCO is active. Car kit didn't accept
remove SCO request command and gone into bad state.
Fix:
AG should send sco disconnect once power mode change is completed
to avoid this failure.
Change-Id: I7eba162a8fd9615795009ab26005535a3e5c7e86
Satish Kodishala [Thu, 11 Feb 2016 17:05:40 +0000 (22:35 +0530)]
Process complete AT cmd response.
Usecase:
1. Enable hf client role and connect with AG.
2. Receive an incoming call and accept from hf client.
3. End call from hf client.
4. Repeat the steps few times.
Failure:
UI is not updated with proper call status although
call is active.
Root cause:
When OK is received as part of AT command response,
application is not updated for it. This caused response
state mismatch in application and hence queue was not
cleared properly.
Fix:
Parse complete AT command response and update application
accordingly.
Change-Id: I8cb2362369b209903700e87330ed2a3e3052b188
Satish Kodishala [Thu, 11 Feb 2016 14:32:08 +0000 (20:02 +0530)]
Abort parsing in case of format error
Usecase:
1. Enable hf client and connect to AG.
2. Send +COPS with length more than allowed 16 characters.
Failure:
Crash might be seen while parsing +COPS response from AG.
Root cause:
sscanf used for parsing the AT commands does not update
the characters scanned when there is format error.
Fix:
Abort the processing in case of format error.
Change-Id: Id3ca80712df3d0251cf9ffb04d9c766be809ae84
Ayan Ghosh [Tue, 7 Jan 2014 11:17:19 +0000 (16:47 +0530)]
Move to idle when remote disconnects during connection.
Chrysler Uconnect Touch initiates disconnect for a2dp on
l2cap just after discovery on AVDTP channel, stack does not
send any message to BTIF layer for disconnection, this
causes btif getting stuck in opening state and later no stable
connection update is sent to app. Since it is intermediate
state all subsequent connection trials fails.
Send disconnect event from incoming state to closing state
and then closing state will send proper msg to btif layer. Add
closing msg handling in btif layer so that we can update app
for connection disconnect when initiated from remote and move to
proper stable state for accepting/initiating connection.
Change-Id: I011d9ffe9d721235217320c1e5281f70328c7f13
Ayan Ghosh [Thu, 3 Mar 2016 10:37:38 +0000 (16:07 +0530)]
Allocate buffer for AV SDP in Stack
Remove buffer allocation in BTA while going for SDP before triggering
A2DP connection. This strategy is followed to address memory corruption
issues due to freeing of BTA buffer before SDP RSP call back is
triggered and access the freed buffer from there, leads to crash when
running Codemonicom tests.
The change allocates and frees buffer in stack.
Change-Id: If6d60d2aa60d19ce5120dd38c2f365d70943db81
Ayan Ghosh [Thu, 11 Dec 2014 12:26:02 +0000 (17:56 +0530)]
Do not initiate SDP for incoming AVDTP connection
There are few instances when remote initiates L2CAP
channel for AVDTP signaling but keeps quite after that,
and later on timeout DUT goes for rest of the signalling
procedure but does sdp prior to the same.Few peer
devices deletes a2dp sink sdp record when there is an
ongoing connection, as a result sdp request fails and
DUT fails to proceed with signalling procedure and
connection setup fails.
This patch makes sure that DUT does not go for redundant
sdp request for AVDTP, provided remote has already
established L2cap connection for the same. SDP is done
explicitly only incase of outgoing AV connection.
This issue is seen with Nokia Es headset.
Change-Id: Id44368687d5b3f97bf0258f8d4ff75f185db23af
Ayan Ghosh [Thu, 3 Mar 2016 13:28:24 +0000 (18:58 +0530)]
Process AV HAL start only when previous instance is cleaned up
Change-Id: Iee232dacd3b79e6e94d26c73fb3e563fddced75c
Ayan Ghosh [Thu, 17 Mar 2016 09:29:06 +0000 (14:59 +0530)]
Restrict DUT supported SBC configuration in GET_CAP response
DUT shows all possible SBC configurations as supported
as part of GET_CAP response and also allows AV SINK to
opt for any of these values from that set as part of
SET_CONFIG request, but later opts for only recommended
figures while streaming so that leads to mismatch in
configuration between the config values SINK sets during
SET_CONFIG and config values DUT chooses for streaming
and hence it causes PTS (version 6.4 onwards) certification
failure for below A2DP and AVDTP cases:
A2DP:
TC_SRC_SET_BV_04_I
TC_SRC_SET_BV_06_I
AVDTP:
TC_ACP_SRC_SIG_SMG_BV_18_C
TC_ACP_SRC_SIG_SMG_BV_20_C
TC_ACP_SRC_SIG_SMG_BV_22_C
Restricting DUT supported SBC configurations to reflect only
the configuration DUT opts for during streaming makes sure
remote also opts for those config values during SET_CONFIG
and later there is no mismatch.
Change-Id: I13dbe94e0ca52708fc62c6db7513f7985237c18c
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
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
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
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
Sharvil Nanavati [Mon, 29 Feb 2016 23:50:49 +0000 (15:50 -0800)]
Don't clear the btsnoop log ringbuffer on compress.
Change-Id: I0bf4279104e87b151553eba913491d934f3cde41
Ajay Panicker [Mon, 21 Mar 2016 18:23:09 +0000 (11:23 -0700)]
Add config source to dumpsys output
This logs where the config file was loaded from in the Bluetooth
Manager dumpsys output.
Bug:
27354612
Change-Id: I50d4aaa0be4f4d1d890580b03742713f4345c80f
Andre Eisenbach [Fri, 18 Mar 2016 09:09:58 +0000 (02:09 -0700)]
Do not leak eventfd's for RFCOMM/AVDT/L2CAP
Various users of fixed_queue's do not free the lists properly after
using them. As a result two event fd's leak for each fixed_queue that
is not free'd, as fixed_queue contains two semaphores.
This can lead to run-away file descriptor allocation and an eventual
hard limit leading to various undefined behaviours.
Bug:
27731859
Change-Id: If9ce64b711083bf474d217aa537220065722ad3a
wrehman [Thu, 17 Mar 2016 04:24:35 +0000 (04:24 +0000)]
Merge "Wait for UHID interface on boot"
Sharvil Nanavati [Tue, 15 Mar 2016 20:13:45 +0000 (13:13 -0700)]
Don't send AT+BCC if local device doesn't support codec negotiation.
The current code only checked if the peer supported codec negotiation
before sending AT+BCC. But if codec negotation is disabled on the
local device, we should definitely not send AT+BCC.
Bug:
27213013
Change-Id: Id372a32a61a3d96d5c093bc50594ef0b8c2eff2e
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
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
Navin Kochar [Wed, 9 Mar 2016 17:41:53 +0000 (23:11 +0530)]
Add LE L2CAP Connection Oriented Channel
This implementation for LE L2CAP Connection Oriented Channel (a Bluetooth
Core Spec 4.1 feature) has been tested on the following formal and informal
IOP events conducted by BT SIG Sport and Fitness Working Group.
* Informal IOP – Tokyo 2014
* UPF 49 – Berlin 2014
* Formal IOP – Tokyo 2014
* Formal IOP – Santa Clara 2015
Change-Id: Ia6de62f9321a78b98930629f65078884157a9c0d
Signed-off-by: Navin Kochar <navin.kochar@intel.com>
Srinu Jella [Fri, 22 Jan 2016 12:19:15 +0000 (17:49 +0530)]
Start listener thread only after successful open call
Use case: Stress tests ON\OFF with different concurrent
scenarios
Failure: Crash in btsnoop_net_listen thread
Root cause: While starting and shutting down the module
we are calling same function update_logging(). While at
the start it is creating listen thread and throwing error
and exiting without closing the listen thread. While
shutdown of module it "should_log" matches with "is_logging"
and it considers cleanup is not required and returns,
leaving Behind the listen thread open. In the next BT ON,
another listen thread is created and causes the crash.
Fix: Started listener thread after prerequisite operations
are successful.
Change-Id: I92ef293d9b061d0ea65a0c41b506870152114bb0
Warren Rehman [Thu, 10 Mar 2016 11:02:10 +0000 (20:02 +0900)]
Wait for UHID interface on boot
Poll and sleep to wait for UHID interface on boot to avoid losing
initial input event after boot.
Bug:
27442119
Change-Id: Ie2141c94624363385951c8316ad854d6ae2e82ec
Srinu Jella [Tue, 15 Mar 2016 11:06:19 +0000 (16:36 +0530)]
Allocate sufficient memory for FCS
Use Case: Hit LeakCanary detection during HDP
Failure: Crash while running LeakCanary detection.
Root cause: Did not have sufficient memory for data frame
which lead to crash.
Fix: Allocating sufficient memory for the data frame
which includes FCS in the header field.
Change-Id: I3bb862f29ecc854423796dc89820ba21c5db6050
Marie Janssen [Thu, 10 Mar 2016 19:27:53 +0000 (11:27 -0800)]
osi: add osi_rand()
Provide a replacement for rand() which has a better random source.
Change-Id: I38a8c74d86b89ec160b43b0f648f53b463be89bb
Pavlin Radoslavov [Mon, 14 Mar 2016 16:45:24 +0000 (09:45 -0700)]
Removed unused function bta_sys_vs_hdl()
Change-Id: Iaf199d418aafc0b518df2f7febfa1c9e29f1fa42
Pavlin Radoslavov [Mon, 14 Mar 2016 17:06:45 +0000 (10:06 -0700)]
Removed duplicate (re)define of BTA_DM_SDP_DB_SIZE
Removed conditional duplicate re-define of BTA_DM_SDP_DB_SIZE.
BTA_DM_SDP_DB_SIZE has been already (conditionally) defined to 8000
in file include/bt_target.h
The conditional re-define of BTA_DM_SDP_DB_SIZE to a smaller
value (250) in file bta/dm/bta_dm_int.h should be removed, because
it is confusing and error-prone.
Change-Id: Id10a45562c7c57fd0a9131ef50b7b7a5c2801ec5
Srinu Jella [Fri, 6 Nov 2015 09:29:10 +0000 (14:59 +0530)]
Free allocation tracker hash map entries to reduce memory pressure
Use case:
A2DP playback becomes choppy after long hours of testing.
Steps:
1. installed 3rd party app that performs recurring LE scans.
2. Leave phone to run overnight.
3. After 24h+, connect a Bluetooth headset and music is very choppy.
Root cause:
The memory allocation tracker has support for double free check
where it stores all allocations in hash map but it never get
removed to track double free issue, A2DP memory allocation is
taking more time and leading to choppyness.
Fix:
Free the hash map entry to avoid memory leak from
allocation tracker.
Bug:
27621407
Change-Id: If57bd0b89c1d9b99c4f066c537a9e0fa49bc093f
Ajay Panicker [Fri, 11 Mar 2016 19:33:21 +0000 (19:33 +0000)]
Merge "Add 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
Jakub Pawlowski [Thu, 10 Mar 2016 17:20:45 +0000 (09:20 -0800)]
Fix startup error when no config file provided
If bluetoothtbd was started without config file
present, it would die on asserts about missing config.
From now it'll proceed with default settings.
Change-Id: I46c35fb2ed71efa49430206da13a19ca7df44a64
Jakub Pawlowski [Thu, 10 Mar 2016 18:58:43 +0000 (18:58 +0000)]
Merge "Linux vendor driver linkage fixes"
Jakub Pawlowski [Thu, 10 Mar 2016 17:25:48 +0000 (09:25 -0800)]
Linux vendor driver linkage fixes
Linux driver depends on osi, so it must be linked with it.
It also must export bt_vendor_interface_t, and named properly,
otherwise it is not being recognized as vendor library.
Bug:
27589244
Change-Id: Ib6817b11e4226f2e289ff0d521daca059ca9aca6
Jakub Pawlowski [Wed, 9 Mar 2016 19:25:45 +0000 (19:25 +0000)]
Merge "Fix build error caused by missing LOG_TAG"
Jakub Pawlowski [Wed, 9 Mar 2016 19:25:06 +0000 (19:25 +0000)]
Merge "Add missing 'cd third_party' step"
Jakub Pawlowski [Wed, 9 Mar 2016 19:22:00 +0000 (11:22 -0800)]
Add missing log tag
Change-Id: Icae6cf63de8d298fb12451887594abe24b026c77
Jakub Pawlowski [Fri, 4 Mar 2016 19:46:08 +0000 (11:46 -0800)]
Remove bta_gattc_id2handle
Now that the instance id is equal to handle, we no longer need this
mapping function.
Bug:
27455533
Change-Id: I6760f8fc81460df8520d4ebf1899ed256ce5ad1e
Jakub Pawlowski [Wed, 2 Mar 2016 22:47:55 +0000 (14:47 -0800)]
Use attribute handle instead of id in GATT cache
Currently we generate an id for each GATT attribute. Those ids
are used to differentiate between attributes that have the same
UUID. We need to get rid of those ids because it won't work with
partial GATT database updates due to "service change"
notifications. Instead, attribute handles, which are unique
across the whole GATT database will be used.
This is first patch in series to achieve that. It gets rid
of id generation, and just assigns handle in place of ids inside
of gatt cache. Upcoming patches will change the GATT cache API
and eventually get rid of "id" completly.
Bug:
27455533
Change-Id: I74c10872ecc223329b8ac7fef4085963bf272624
Jakub Pawlowski [Tue, 8 Mar 2016 20:36:46 +0000 (12:36 -0800)]
HID multi-device refactoring
We don't really support multiple HID services in same device.
We shouldn't use default value 0 for service id.
We shouldn't merge service id and characteristic id into one field,
as it's done not right right now.
Bug:
27455533
Change-Id: I46cc1b62bb2c7393e62f3b1a8e4650706954a066
venkata Jagadeesh [Tue, 15 Dec 2015 07:30:01 +0000 (13:00 +0530)]
SDP: Restrict attribute length to SDP_MAX_ATTR_LEN
Use case:
Bluetooth crash during the SNS testing.
Root Cause:
In sdpu_build_partial_attrib_entry there is no length check, it can
exceed the maximum allowable value and lead to a crash in memcpy.
Fix:
Restrict remaining attribute length to SDP_MAX_ATTR_LEN
in sdpu_build_partial_attrib_entry.
Change-Id: I5bde6868b82e50b3c09cf94277dabb4862f0a2a8
Marie Janssen [Tue, 8 Mar 2016 19:50:27 +0000 (19:50 +0000)]
bluetooth-cli: add support for --exec
am:
5d80cb938d
* commit '
5d80cb938d7fb3312870a047749cc839ba5bafca':
bluetooth-cli: add support for --exec
Marie Janssen [Fri, 22 Jan 2016 02:45:53 +0000 (18:45 -0800)]
bluetooth-cli: add support for --exec
Adds the --exec and -e arguments, which execute commands when the
cli starts.
This also adds support for chaining commands at the command line by
separating them with ';' characters.
Change-Id: Ic2bf8a908fbb7fb4cf775810754571fa96d75e87
Jakub Pawlowski [Tue, 8 Mar 2016 03:04:34 +0000 (03:04 +0000)]
GATT cache storage refactoring
am:
c10b209f62
* commit '
c10b209f62a52d2a782d4d8c97734b6c142f2567':
GATT 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
Pavlin Radoslavov [Mon, 7 Mar 2016 21:05:23 +0000 (21:05 +0000)]
Ignore LCB entries that migth have been released while queued
am:
fb2105f348
* commit '
fb2105f3488e48f2d908b13a33f47e34f6e3f78d':
Ignore 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
Patrick Tsai [Sun, 6 Mar 2016 09:42:19 +0000 (01:42 -0800)]
Fix build error caused by missing LOG_TAG
FAILED: gcc -MMD -MF obj/hci/src/libhci.hci_packet_parser.o.d -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DHAS_NO_BDROID_BUILDCFG -DLOG_NDEBUG=1 -DEXPORT_SYMBOL=__attribute__\(\(visibility\(\"default\"\)\)\) -DKERNEL_MISSING_CLOCK_BOOTTIME_ALARM=TRUE -DOS_GENERIC -I../../hci/include -I../.. -I../../include -I../../bta/include -I../../btcore/include -I../../stack/include -I/home/patrick/src/fluoride/libhardware/include -I/home/patrick/src/fluoride/core/include -I/home/patrick/src/fluoride/media/audio/include -g -O0 -fpic -fdata-sections -ffunction-sections -fvisibility=hidden -std=c99 -c ../../hci/src/hci_packet_parser.c -o obj/hci/src/libhci.hci_packet_parser.o
In file included from ../../hci/src/hci_packet_parser.c:28:0:
../../hci/src/hci_packet_parser.c: In function ‘read_command_complete_header’:
../../hci/src/hci_packet_parser.c:239:43: error: expected ‘)’ before ‘__func__’
LOG_ERROR("%s: return status - 0x%x", __func__, status);
Change-Id: I6ca721ba24ba3170d701f606f0676c5c4e707cf8
Patrick Tsai [Sun, 6 Mar 2016 08:35:09 +0000 (00:35 -0800)]
Add missing 'cd third_party' step
Subramanian Srinivasan [Fri, 4 Mar 2016 22:02:25 +0000 (22:02 +0000)]
Update device type in NVRAM correctly during inquiry
am:
ab7418f58c
* commit '
ab7418f58c84216d57b7c0d553f09f5748badd82':
Update device type in NVRAM correctly during inquiry
Subramanian Srinivasan [Thu, 23 Jul 2015 22:05:05 +0000 (15:05 -0700)]
Update device type in NVRAM correctly during inquiry
If the NVRAM device type for a device is not dual mode and the inquiry
result is received for BLE or BR/EDR transport, then this patch updates
the NVRAM device type to dual mode.
Change-Id: I688e7c5e3bd8d844288d095cb97c2e55ddf652c6
Jacky Cheung [Fri, 4 Mar 2016 21:58:32 +0000 (21:58 +0000)]
Default missing DevType and DevClass in NVRAM.
am:
3b6ef54cd2
* commit '
3b6ef54cd262da6a41a16dafe361040740024717':
Default missing DevType and DevClass in NVRAM.
venkata Jagadeesh [Fri, 4 Mar 2016 21:58:28 +0000 (21:58 +0000)]
GATT: Initiate L2CAP disconnect only when the channel is open
am:
bf955cb7e5
* commit '
bf955cb7e50e1047452e741effa504c8aefc8a4f':
GATT: Initiate L2CAP disconnect only when the channel is open
Jacky Cheung [Fri, 4 Mar 2016 21:29:02 +0000 (13:29 -0800)]
Default missing DevType and DevClass in NVRAM.
Missing DevType and DevClass in NVRAM were not properly set to a
default values previously.
venkata Jagadeesh [Thu, 26 Nov 2015 08:44:00 +0000 (14:14 +0530)]
GATT: Initiate L2CAP disconnect only when the channel is open
Use case:
Crash found during L2CAP disconnect from faulty BLE APP.
Steps:
Run SNS testing.
Failure:
Crash during L2CAP disc.
Root cause:
Faulty BLE application triggering GATT disconnection
which internally triggering L2CAP disconnection without checking
proper state of channel.
Fix:
- Initiate L2CAP disconnect only when the channel is open
- Validate LCB during disconnection from upper layers
Change-Id: Ic9d065f095feba659c861828732647e968c20db8
Jakub Pawlowski [Fri, 4 Mar 2016 21:50:24 +0000 (21:50 +0000)]
Remove btla-specific comments
am:
1be7ae1a08
* commit '
1be7ae1a0890380b8a3daebcade0c1f55b04b167':
Remove btla-specific comments
Jakub Pawlowski [Fri, 4 Mar 2016 21:20:05 +0000 (13:20 -0800)]
Remove btla-specific comments
Change-Id: I91a19b2cfbc96d7567e0e0914058619ea364c1d4
Matadeen Mishra [Fri, 4 Mar 2016 19:36:09 +0000 (19:36 +0000)]
Correcting sniff behaviour in multi-connection scenario
am:
31d1a2b525
* commit '
31d1a2b52507df33f13d19ed2349585dfa490542':
Correcting sniff behaviour in multi-connection scenario
Matadeen Mishra [Mon, 1 Feb 2016 13:50:54 +0000 (19:20 +0530)]
Correcting sniff behaviour in multi-connection scenario
Use case: When multiple profiles are connected on same link and if any one of the
profiles deregisters with powermanager, powermanager will initiate a sniff when it
removes the timer for one profile, even if a timeout did not trigger for other profiles.
Steps:
1. Turn on BT
2. Pair with Mi band (Wearable device)
3. Pair with carkit
4. Turn off BT
5. Turn on BT
HF and A2DP connection should successful after BT on to carkit.
Failure: HF connection fails.
Root Cause: powermanager initiates a sniff when it removes the timer for one profile
Even if a timeout did not trigger for other profiles.
Fix: When multiple profiles connect on the same link and if any one profile
deregisters with powermanager, pm should stop the timer for that profile
and restart the other profiles timers.
Change-Id: I8e215a9d868291976c70ff32b61145b4360a7f8f
Srinu Jella [Fri, 4 Mar 2016 19:12:48 +0000 (19:12 +0000)]
Cleanup L2CAP socket properly on close
am:
9123096530
* commit '
91230965304bc323a96ced0527d560aacb606415':
Cleanup L2CAP socket properly on close
Srinu Jella [Mon, 21 Sep 2015 06:30:48 +0000 (12:00 +0530)]
Cleanup L2CAP socket properly on close
Use case:
1. Sometimes pairing pop up occurs during Android beam
transfer though it is not required.
2. No OPP Tx request over OBEX if we cancel during file transfer.
Precondition
1. WIFI ON and conneted with AP.
Steps:
1. Pair and connect from DUT to remote.
2. Go to gallery and send a file.
3. Accept same file and stop it from remote during transfer.
4. Repeat step 2-4 10 times.
Failure:
OPP Tx should not fail.
Root cause:
Close request was not properly handled from BT-IF layer.
Fix:
1. Handled the close request properly from BT-IF layer
to close the socket variables and instruct the BTA layer
close from there as well.
2. Clean up L2CAP socket properly on closure to free
the entry registered with security manager to avoid
leak in security manager records.
Change-Id: I4f5d6ac92317bcaee5f9285ba71d13eea84c737c
Balraj Selvaraj [Fri, 4 Mar 2016 19:02:47 +0000 (19:02 +0000)]
GAP Setting remove device pending status as FALSE
am:
9412bbaea5
* commit '
9412bbaea51f577d903e060b8c8214fbd28b0b4f':
GAP Setting remove device pending status as FALSE
Balraj Selvaraj [Thu, 11 Feb 2016 08:16:02 +0000 (13:46 +0530)]
GAP Setting remove device pending status as FALSE
Use case: DUT deletes Link key and failed to initiate
authentication request after remote headset turned Off and ON
steps:
- Pair the DUT and HS. (Link Keys get established.)
- Now Switch OFF BT on DUT. (DUT still has the Link key of HS)
- Reset the paired devices memory in HS and keep HS in
pairing mode. (HS loses DUT's link key)
- Now switch ON BT on DUT. (DUT starts reconnection with HS,
but as HS lost DUT's key, PIN or KEY missing event will
come to host)
- DUT reconnects to HS (Using newly established link keys)
- Now power OFF and ON the HS.
- HS will try reconnection with DUT.
- While there is an incoming connection from HS to DUT,
host is giving negative link key reply always for the
multiple link key requests from HS.
- HS sends disconnection with "Authentication failure"
Failure: DUT should not delete Link key and DUT should
initiate Authenticatin request.
Root cause: pending status was not FALSE from security device
DB, which will causing Authentication Failure.
Fix: Setting the remove device pending status to FALSE from
security device DB, when the link key notification event
comes. Basically it will avoid deleting the device from
security device DB, Which is solving the reconnection
initated from remote when we remove the link key at
remote side.
Change-Id: Ic164d8d5b5c2e0b9cc5f04f993047fb0a8e5d9a9
Srinu Jella [Fri, 4 Mar 2016 18:48:22 +0000 (18:48 +0000)]
Track TX empty event to manage sniff timer
am:
4e972d8c24
* commit '
4e972d8c24ecfb808757ef5c81eb3877ebc93027':
Track TX empty event to manage sniff timer
Srinu Jella [Tue, 16 Feb 2016 14:52:16 +0000 (20:22 +0530)]
Track TX empty event to manage sniff timer
Use case:
OPP TX while inquiry is in progress.
Steps:
1. Send any file from DUT to remote using BT.
2. Accept file on remote.
3. During file transfer, start inquiry on DUT and
observe behaviour.
Failure:
DUT sends sniff command in the middle of the transfer
though it is not required. eventually OPP Tx over
L2CAP file transfer fail.
Root Cause:
As per the current implementation, for tx it will
immediately starts idle timer without checking
for the completion status of tx.
Fix:
Handled the tx complete event from L2CAP properly
to start the idle timer to manage the sniff properly.
Change-Id: I298075590042e82a2f33837f6df6af0b2fd8179a
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Andre Eisenbach [Fri, 4 Mar 2016 06:41:45 +0000 (06:41 +0000)]
Remove bluedroidtest
am:
cd0199a20b
* commit '
cd0199a20b48fcb191f3178a28a6a503e28b7685':
Remove 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
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.