OSDN Git Service

android-x86/system-bt.git
7 years agoHF Client: Handle errors for CGMI, CGMM in the stack
Satish Kodishala [Tue, 6 Oct 2015 15:42:14 +0000 (21:12 +0530)]
HF Client: Handle errors for CGMI, CGMM in the stack

AT+CGMI=? and AT+CGMM=? commands are sent from stack to
the AG in post SLC sequence. We are upstreaming errors
returned from AG for these commands to
HeadsetClientStateMachine. This leads to state mismatch
in state machine.

CRs-fixed: 919514
Change-Id: I4acb32d3c1dd78ba3de3b60fb029268b307199f7

7 years agoHID: Prevent incoming and outgoing SDP collision
Hemant Gupta [Wed, 7 Oct 2015 06:38:10 +0000 (12:08 +0530)]
HID: Prevent incoming and outgoing SDP collision

SDP is performed 2 times as part of HID connection in BD stack,
one after successful authentication, and one in hid stack layer
as sdp data is not stored currently in stack. When there is outgoing and
incoming connections, SDP failed message was posted which was resulting
in SDP failure for hid host resulting in improper disconnection of
hid interrupt channel.

Change-Id: I5b4813dc916696e2c0f76be27a85c1a89c2d8be0
CRs-Fixed: 683139

7 years agoGet AG manufacturer information
Satish Kodishala [Fri, 1 May 2015 14:23:35 +0000 (19:53 +0530)]
Get AG manufacturer information

Added support for AT+CGMI and AT+CGMM commands.
The commands get manufacturer identification and model
information respectively. Commands are sent post SLC
procedure.

CRs-fixed: 844824
Change-Id: Ie556281eebc7b8511d28b2d56f3519cca312e3c6

7 years agoBluetooth: Avoid crash while releasing CCB
Ajay Kumar [Wed, 9 Mar 2016 05:03:33 +0000 (10:33 +0530)]
Bluetooth: Avoid crash while releasing CCB

There are chances that LCB values are not
filled while releasing CCB, putting check
for this ensuring no crash while LCB is NULL.

Change-Id: Iac2fa78d3599431308a030861158efa095bbdbf5
CRs-Fixed: 984983

7 years agoIgnore RFCOMM close event in case of collision
Satish Kodishala [Fri, 10 Jul 2015 09:36:07 +0000 (15:06 +0530)]
Ignore RFCOMM close event in case of collision

When Multi-hf is enabled, if outgoing and incoming to/from
HF collide, ignore RFCOMM close event if HF is already connected.

CRs-fixed: 869792
Change-Id: I1ed5b17de13ed66c2add4c2377949cdffe968c48

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.

CRs-fixed: 861222
Change-Id: Ibc6a72b749280dc70a355270f37f4316468c1a4f

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.

CRs-fixed: 861209
Change-Id: Iff3e1f2a25988c3eb55d6914cae6ac8427a7e211

BT: HFP1.7: Do not upstream invalid BIND set event.

Incase remote HS sends incorrect BIND set command during
SLC, do not upstream the event to BT apps to avoid disconnection.

Change-Id: Ie2d52a97ab179174e219ebe0c17f9d1f66545367
CRs-Fixed: 809572

Do not reset SSR parameters on SCO link.

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 SSR. When a2dp is connected after SCO
connection it enables SSR. This enabling of SSR is causing ACL
disconnect.

When there is new profile connection on same device which has SCO
we should not enable SSR. It should be enabled only when there
is no SCO.

Change-Id: I25263a148a13136174a67867a822ba3497a11f8e

7 years agoGAP: Accept incoming connection with slave role
venkata Jagadeesh [Thu, 26 Jun 2014 06:25:41 +0000 (11:55 +0530)]
GAP: Accept incoming connection with slave role

-Define DUT Default desired role as master

-Accept incoming connection with DUT role as slave for
list of carkits and headsets which are blacklisted.

Change-Id: Ie6af63b50debd417ce2d54b28b83d95ef4f695a6
CRs-Fixed: 892194

Bluetooth: GAP: Disallow roleswitch for blacklisted devices

Set link policy to disallow role switch for blacklisted devices
as some devices not starting encryption after role switch
and a2dp connection getting delayed for some devices due to role switch

Change-Id: I75a20b5cda9c4b46d118b12de373c99a25f72012
CRs-Fixed: 892242

Bluetooth : GAP : Dont initiate role switch for blacklisted remotes

Don't initiate role switch for blacklisted remotes from DUT
as some remotes always rejects role switch and role swicth retrails from
DUT may lead to a2dp glitches

Change-Id: I41bd78f1d25f1fc2985f1cf226a54d6819be968b

7 years agoBluetooth: Add support to send h/w error event
Srinu Jella [Mon, 21 Sep 2015 13:59:50 +0000 (19:29 +0530)]
Bluetooth: Add support to send h/w error event

- Bluedroid stack needs to be reset whenever H/w
  chip restarts like Subsytem restart.

- Emulates the hardware error event on detecting
  SSR event from PR controller.

CRs-Fixed: 914079
Change-Id: I9248a4e6ad689fc590fd4fd0f7a067cd33bf314f

Bluetooth: Reset bluetooth status to download NVM tags

- Reset bluetooth status to download the NVM tags once
  the SSR is detected.

- NVM tags downloaded only once for the first BT on and
  downloaded again in case of SSR or command timeout.

- Without this change, there would be diffrence in
  BD addr which would lead to pair/connection issues.

CRs-Fixed: 932195
Change-Id: I75a44e7ae7d301ff1c9be8349c1b51d4c80cbf36

BT: Adding check for packet size before allocating buffer

During controller reset, corrupted packet might reach
to host. This packet might indicate length value more
than maximum allowed packet length. This causes crash
during buffer allocation.
Added the correct length check before allocating the
memory.

CRs-Fixed: 978009
Change-Id: I462b9b18e4c9db67d4860509376b0cb38830e56d

BT: Rectify the method to reset host after controller crash

Use case: When controller is forcefully crashed for testing,
the host process should reset itself.

Steps: Testing envolving forceful crashing of controller
to observe recovery and behavior of host in such events.

Failure: Once controller crash was enforced, the host
process was not resetting itself.

Root cause: The packet created to send hw reset event to
stack was getting truncated.

Fix: Changed the logic to first create an empty packet and
later set its type and data to make hw reset event.

CRs-Fixed: 1000446

Change-Id: Ied4e62db0be5bb8e16fac05787b9a071fd86b1e7

7 years agoAdd few logs for phone state change updates
Satish Kodishala [Tue, 18 Aug 2015 13:57:39 +0000 (19:27 +0530)]
Add few logs for phone state change updates

Added few logs to get the phone state updates from Telephony.

CRs-fixed: 751733
Change-Id: Ic5553e08f0584fef0705386ba96e0fa852676ba3

7 years agoBluetooth: Add support to read BD address from bt_nv.bin
Srinu Jella [Wed, 7 Oct 2015 12:31:53 +0000 (18:01 +0530)]
Bluetooth: Add support to read BD address from bt_nv.bin

- Add support to read BD address from bt_nv.bin if no
  other BD address is available from other mechanism.

- If the ro.boot.btmacaddr property is set, it will
  prioritize this property over bt_nv.bin.

CRs-Fixed: 921979
Change-Id: I8a0d38be7adb93db95eb3618a8f6af4030adf373

7 years agoHandling Authentication Failure From the lower layer
Matadeen Mishra [Wed, 23 Sep 2015 16:56:46 +0000 (22:26 +0530)]
Handling Authentication Failure From the lower layer

Use case: DUT unable to do connect with all devices in
Multipairing case.

Steps:
1. pair with HS
2. disconnect HS.
3. reconnect HS from DUT.

Failure: Authentication failure occurred due to LMP
transaction collision DUT not deleting link key which
lead to unable to connect to device.

Root Cause: Not posting the Authentication failure
event to application layer, while removing the link-key.

Fix: Post the Authentication failure event to application
and removing the link-key.

Change-Id: I079d8ce89c1fea66f0624127514cec8405bfdd3d

Add null check to avoid exception after L2CAP psm assigned

Use case: BT will get crash in SNS testing.

steps: SNS testing BT ON/OFF.

Failure: Crash is observed.

Root Cause: If the number of supported services increased,
larger service record array is required. Smaller array is
resulting in out of record error causing L2CAP deregister.

Fix: Check added to avoid null pointer exception if null
is returned while fetching sock from id. Also cleanup of
SDP and security records done during BT turning Off.

Change-Id: I2e77127262119cabf2c372f894427dcdf3350e80

Prevent crash due to second attempt to clean up eager_reader

Null out the eager readers once they are cleaned up, so we
don't try to clean them up later if an error occurs opening
the HAL again later.

Change-Id: I07df1010a1a619cb67b306d64e274d450234a002

Remove bonded device information on pairing rejected

Use Case: Remove bonded device information from the BTIF layer storage
when authentication failed.

Failure: Remote device appeared in the paired list after authentication
failed.

Steps:
1. Create a connection from DUT to remote.
2. Remove linkkey in remote.
3. Create connection from DUT to remote, which is in paired list of
DUT, Remote rejected the connection and authentication failed.
But after BT OFF/ON, remote device appeared in the paired list

Root Cause: Not removing device if remoted rejected the pairing
request with reason pairing not allowed

Fix: Remove bonded device information from the BTIF layer storage
on rejected with pairing not allowed reason from remote

Change-Id: Ic9e5e1ed70d304edd3dbca82a73833753fa0093c

GAP: Save pin code length for incoming legacy SAP connection

Use case: Carkit cannot reconnect to DUT in Sim Access Profile mode

Steps:
1. Pair with a car-kit (Agree all SAP, MAP, PBAP requests)
2. Initiate disconnection on DUT
3. Initiate re-connection on the car-kit.

Failure: SAP profile reconnection failing as dut gives negetive
linkkey reply.

Root Cause: sec_flags not getting updated without pin len and stack
triggering negative link key reply even linkkey is proper for 16 digit
authentication of SAP.

Fix: Save pin length during BTM_PINCodeReply.

Change-Id: I8300dd3ff497058291143313b169190910e0a7c5

Ignore pairing not allowed error when pairing in progress

Use case: Pairing with both devices fails, when there is
clash of pairing from 2 devices

1. Create a link from Test tool to DUT. Remove bonding info in Test tool.
2. Create a link from DUT to magic mouse. Unpair the link from DUT.
3. Click on magic mouse, it creates a link, and we get a pairing
   pop-up in DUT.
4. Try to pair from Test tool to DUT.

Failure: Pairing with mouse should success and other pairing
should fail. But both pairing fails

Root cause: Stack sending pairing not allowed error to upper layers
for the second device when already pairing is in progress with
some other device, which is impacting the existing pairing.

Fix: Issue fixed by Ignore pairing not allowed error for the
second device when already pairing is in progress with some
other device.

Change-Id: I20dbd70e7429505a580c9a20d40a8d92318f6c3e

Handled delayed info response from remote during SDP

Use case: DUT is not connecting to windows-7 tablet

Failure: Connection is not successful with windows-7 tablet.

Steps:
1. Turn on BT on DUT
2. Pair and connect from remote device.

Root Cause: DUT initiates connection with out waiting for
information response from remote device during SDP.

Fix: DUT will not wait for information response from the
remote during SDP.

Change-Id: Iee0251f8f81923b1291983b66b31c78e14d21af0

GAP: Update Paging and inquiry busy level seperately

Use case:  Bluetooth Search Fail while ACL disconnection.

Steps:
1. Headset(HBS 760) connect
2. Put Headset off
3. BT Search Fail.

Failure: BT search fail after disconnected Headset.

Root cause: While updating the busy level of Paging or inquiry '10'
was used as BL for paging and inquiry,this leads to
1. Ignore the one of them when both of them are active.
2. During ACL disconnection, unexpected inquiry busy level update.

Fix: Sending unique busy level for paging related events and inquiry
related events, so that each event will be notified.

Change-Id: I7bddcb4901061c450555235717b7d49bab922ae8

GAP Write 248 char name length to the chip while BT ON/OFF

Use case: Remote device cannot see local name with 248 chars.

steps:
1. Turn on BT (Default name will come)
2. Change local name to 248 chars
   make sure DUT can be successfully searched from remote device.
3. Turn off BT (or phone reboot)
4. Turn on BT

After step.4, the 248 chars name comes to GUI on MTP. However
device search from remote device having DUT "Default name".

Failure: Remote device cannot see local name with 248 chars.

Root cause: DUT not supporting for the 248 char local name

Fix: Writing the exact 248 character local name to the chip

Change-Id: I702af8fa8d0affda509de7a9f17af8922e410286

Failed to re-register APK Configuration for HDP

Use case: register/unregister HDP from third party APK

Test Steps:

1.Install Any Test APK which internally registers/unregister the HDP.
2.Run Test APK.
3.Do initialization of Test APK which internally registers the HDP.
4.Force stop the Test APK.
5.And rerun the APK by going back test APK menu.
6.Now it never perform the re-register the HDP as part of initialization.

Root Cause: HDP registration related counter write operations are done
in JNI main thread, and it's been referenced in BTIF thread.Sometimes,
if the context switch to BTIF thread doesn't happen immediately after
counter increment/decrement, it may not un-register the app if the
counter becomes 0.

Fix: Fixed it by making all operations related to counter in BTIF
thread, so that de-registration happens for all HDP APPs.

Change-Id: I71ace68a5f3d39d81b646f5f40c02ce56b9e93f0

Added check for hci_layer status before processing function calls

Use case: BT will get crash in SNS testing.

Steps: SNS testing BT ON/OFF.

Failure: Crash is observed.

Root Cause: When hci_layer functions for transmit command and cleanup
are called during hci_layer shutdown, they might try to access
lists that are already cleared as part of shutdown process.

Fix: Added check within functions to check for hci_layer state
before processing.

Change-Id: I8dbca9893e03dfc500886c5033a79976dc5d23e1

Group BR-EDR related SDP variables under transport

Use Case: Random RNR initiated after HOGP Keyboard disconnection.

steps:
1. keep madcatz in advertisement mode and scan, pair from DUT.
2. keep dailog Keyboard in advertisement mode and scan, pair from DUT.
3. Take Keyboard out of range to initiate disconnection from remote
or initiate disconnection from remote.

Failure: DUT trying to do RNR to random device.

Root Cause: when the disconnection happened for LE device, it sets
the wait_disc to true, that is causing random RNR to go for BR-EDR
device.

Fix: Group all BR-EDR related SDP variables under transport check
so that if some other operation on LE will not corrupt these BR-EDR
variables to mislead.

Change-Id: Ic9003f2b85bbaaa30b201b8a639a9d9b52055ac5

7 years agoEnable AVRCP TG feature only when A2dp source is enabled
Anubhav Gupta [Tue, 5 May 2015 12:18:24 +0000 (17:48 +0530)]
Enable AVRCP TG feature only when A2dp source is enabled

  - Drop Control, Meta and Browse commands when TG is not up.
  - Not to call AVRCP app callbacks when mentioned service is down.
  - Advertise AVRC CT category 2 support in CT SDP record.

Change-Id: Ib54c104e87c735b55d6c6ec07c08d2149acc1a6d

7 years agoReject Metadata command with invalid length
Anubhav Gupta [Wed, 21 May 2014 14:33:00 +0000 (20:03 +0530)]
Reject Metadata command with invalid length

This change ensures that DUT rejects AVRCP Meta command
having invalid data length to avoid crash while processing
the invalid command further.
This crash was seen while running codenomicon test suit.

Change-Id: I8a591d601636a0fce268b5b965f2bd691c24c319

7 years agoEnable incoming connection for AVRCP Controller
Anubhav Gupta [Tue, 5 May 2015 14:54:47 +0000 (20:24 +0530)]
Enable incoming connection for AVRCP Controller

 - Start listening for incoming AVRCP connection if we have
   only AVRCP Controller
 - Update default peer_features based on feature mask. In case
   of incoming AVRCP connection, SDP will be done later.
   In such a scenario default peer features sent to btif should
   be based on  features-set selected during initialization.

Change-Id: Ied8ac0673288a4423bd41500985366ddc2c567a8

7 years agoInitiate Sniff on A2DP/HFP links
Anubhav Gupta [Tue, 24 Sep 2013 06:01:16 +0000 (11:31 +0530)]
Initiate Sniff on A2DP/HFP links

With Plantronics headsets it has been seen that sometime
it takes upto 30s to initiate SNIFF. With these devices
ACL is in active mode for that duration. Though there is
no user observable impact but power consumption will
be more as link does not go to SNIFF.

Changes are done in Handsfree Power Manager table such that
once Handsfree PM state Machine goes to idle state, SNIFF
timer is started. In addition to that extra power mode entry
for AV is avoided by passing correct app_id to sys methods.
This avoids sending app_open from SDP for A2DP. Instead uses
conn_open while starting SDP and conn_close on SDP complete.

Change-Id: I25608db3e2b8cfe8f44b10894d5d3a7388b54ed5

7 years agoHandle Disconnect request in Opening State.
c_sdamga [Mon, 20 Jul 2015 13:47:04 +0000 (19:17 +0530)]
Handle Disconnect request in Opening State.

When A2dp is unchecked from settings UI and remote has
initiated a2dp connection and initiated AVRCP play music
gets started on DUT. Since A2dp connection is disconnected
music continues to play on DUT.

As A2dp connection was not completed, btif state was still
in opening state.Hence handle disconnect in opening state
so that we disconnect A2dp before AVRCP cmd is processed

Change-Id: If1cda5b78100419fdc60c97349efafdd4a18d40c

7 years agoBT:[1/3]Send VSC to SOC for VOIP connectivity network type.
Sumit Bajpai [Tue, 9 Jun 2015 12:55:20 +0000 (18:25 +0530)]
BT:[1/3]Send VSC to SOC for VOIP connectivity network type.

- Handle voip network type wifi command from BT app.
- Prepare VSC in BTIF.
- Handle command complete for VSC.

CRs-Fixed: 821566
Change-Id: Ia74e1f0f1e0fb37f952b736b1546ed2de5aee5af

7 years agoBluetooth: update both connected HS.
Gaurav Asati [Tue, 18 Aug 2015 13:39:57 +0000 (19:09 +0530)]
Bluetooth: update both connected HS.

 - When VR is launched/closed from connected HS, update other
   HS for VR state change.
 - When VR is launched/closed from UI, update both connected
   HS for VR state change.

Change-Id: I652557abe6983e60b7d2ace305b5418f4fba3c70

7 years agoRead HFP version property on BT4.0 or older BT devices
Satish Kodishala [Fri, 31 Jul 2015 13:09:01 +0000 (18:39 +0530)]
Read HFP version property on BT4.0 or older BT devices

If reading local supported codecs command is not supported,
read HFP version property to set MSBC codec.

Change-Id: Ifc44d1b63e454c8c0212eca47d763c6bb16e2034

7 years agoBT-HFP: HFP1.7 AG support in bluedroid
Sumit Bajpai [Fri, 9 Jan 2015 09:19:00 +0000 (14:49 +0530)]
BT-HFP: HFP1.7 AG support in bluedroid

Added HFP 1.7 support in BT stack.

CRs-fixed: 715684
Change-Id: I315c723cb956a566a8c248a34959a18d177d166e

7 years agoEnable WBS
Satish Kodishala [Wed, 22 Jul 2015 10:27:31 +0000 (15:57 +0530)]
Enable WBS

Enable compile time flag BTM_WBS_INCLUDED in the stack to enable
the WBS codec negotiation code in the stack.

All changes in stack are guarded using BLUETOOTH_QCOM_SW feature flag.

Initiate codec negotiation process only for those remote
devices which support it

start codec negotiation procedure after AT+BCC command is received from HF
requesting to start codec negotiation.

SCO state machine moves to proper state to reinitiate SCO connection.
Avoid sending codec negotiation for HF devices not supporting
WBS in such error cases.

CRs-fixed: 878963
Change-Id: Ia3641bfad60b4087cf99250a7ea190ec700547bf

7 years agoAG: Clear the memory before using it
Satish Kodishala [Fri, 5 Feb 2016 07:05:54 +0000 (12:35 +0530)]
AG: Clear the memory before using it

Initialize memory with 0s before copying the arguments
of AT commands received from headset. If buffer is not
initialized to 0s, when we encounter any unknown character
while parsing the arguments, we return error.

CRs-Fixed: 972767
Change-Id: Ia107ccd140b7bbc9e5963920d34fad22664c7519

7 years agoAvrcp: Do not initialize transactions if cleanup done already.
Sumit Bajpai [Wed, 16 Sep 2015 13:08:43 +0000 (18:38 +0530)]
Avrcp: Do not initialize transactions if cleanup done already.

In case of BT turn off, if avrcp cleanup happens earlier than
rc disconnection, then initialize_transaction gets blocked on
locking mutex which got destroyed during cleanup. Do not initialise
transaction and close uinput if done already during cleanup

Change-Id: Ib3fd61275bc918872a80a70b3d7ba66309b23ab6

7 years agoDisconnect AVRCP if A2DP does not connect to same device
Ayan Ghosh [Thu, 29 Jan 2015 12:04:48 +0000 (17:34 +0530)]
Disconnect AVRCP if A2DP does not connect to same device

Disconnect existing AVRCP if A2DP connects to other peer device.
This fix is required as we do not have separate UI to disconnect
AVRCP profile. So unless AVRCP is disconnected this way this orphan
connection will exist for ever.

Change-Id: I1113de2d40e7596095fd7e7fbca600dfaf0b551e

7 years agoSynchronize encoder init and encoder update
Ayan Ghosh [Wed, 6 Aug 2014 10:34:42 +0000 (16:04 +0530)]
Synchronize encoder init and encoder update

Ensure encoder init and encoder update are executed
from same BTIF context which ensures sequential
execution of encoder init and update functions.

Change-Id: I0945737497f87e450a6c9959eb5f163e932db7d4

7 years agoIncrease number of semaphores for media workqueue
Ayan Ghosh [Thu, 3 Mar 2016 13:04:48 +0000 (18:34 +0530)]
Increase number of semaphores for media workqueue

As mediatask allows only 128 pending workqueue enqueue semaphores
to be created hence on Suspend confirm delay alarm callbacks run
out of that semaphore count and 129th instance of it gets blocked
and corresponding alarm_callback gets stuck.
Now later on receiving suspend ack, mediatask goes for freeing the
media alarm which eventually waits for pending callback to come out.
But as that never happens as callback is stuck so eventually mediatask
also gets blocked and SUSPEND ACK to Audio HAL also gets blocked.
So this phenomenon eventually leads to deadlock and later whosoever
tries to make use of audio therad runs into ANR.

This fix ensures that the current proposed value of semaphore/ workqueue
element cound is made so big that is capable of handling delay of 15s
(Max delay entertained for any AV signalling commands) for
suspend confirm case.

Change-Id: I917e2e0651cfc93837c483cd6f4f94d8aa933fa8

7 years agoHFP-AG: Cleanup when incoming and outgoing connections collide.
Satish Kodishala [Mon, 16 Nov 2015 17:16:51 +0000 (22:46 +0530)]
HFP-AG: Cleanup when incoming and outgoing connections collide.

- When incoming and outgoing connections from/to same device collide,
  clean up outgoing path after incoming connection is accepted.

- Abort outgoing connection to the same device if collision is detected
  before making RFCOMM connection.

- Choose the connected device to send response for AT commands.

Change-Id: If5c86356ce0496ab63d6445257bdc1977d2cb56b

7 years agoBluetooth: Enable WBS for HFP 1.6 and above
Gaurav Asati [Tue, 5 May 2015 10:46:15 +0000 (16:16 +0530)]
Bluetooth: Enable WBS for HFP 1.6 and above

 - Enable WBS feature for HFP versions 1.6 and above

Change-Id: I971e5c89e31142c4aec84aae9b92c0e26a00800e

7 years agoAG: Check MT call setup state before starting ring timer
Satish Kodishala [Wed, 13 Jan 2016 13:53:04 +0000 (19:23 +0530)]
AG: Check MT call setup state before starting ring timer

If the MT call is accepted, we should not send ring to
connected headset. If ring timer expires at the same time
when the call gets accepted, we end up stopping and starting
the ring timer.

CRs-Fixed: 961730
Change-Id: I84fe460318a0c10a90a89979e3e0e0ba4fdaa0bd

7 years agoBluetooth: Update hf structure on phone state change only if SLC is up
Bhakthavatsala Raghavendra [Wed, 23 Sep 2015 21:28:27 +0000 (14:28 -0700)]
Bluetooth: Update hf structure on phone state change only if SLC is up

Update hf structures on phone state change only if the perticular
SLC is connected. Updating it regardless of the states causes hf state
to indicate wrong status

CRs-fixed: 913024

Change-Id: I360677306b46e914f939b9034305d4b89dabd79b

7 years agoBluetooth: Proper removal of item from connect queue in AG
Bhakthavatsala Raghavendra [Wed, 2 Sep 2015 23:27:42 +0000 (16:27 -0700)]
Bluetooth: Proper removal of item from connect queue in AG

Remove the connect queue item when RFCOMM connection for HFP is
up instead of while SLC is up, so that Profile state machine
wouldn't allow simultaneous CONNECT requests

Change-Id: Ie913f552d428d40fae1f8cded169c1cc49c822c8

7 years agoMove SCO state properly
Mallikarjuna GB [Tue, 23 Jun 2015 12:00:03 +0000 (17:30 +0530)]
Move SCO state properly

Due to sudden SCO disconnect along with ACL disconnect,
DUT's SCO state didn't move to proper state.Due to this,
next attempts to open SCO is failed and user was not
able to route call audio to BT headset.

This change attempts to handle this bad behaviour from
the remote and makes sure that SCO state is proper.The
change calls sco disconnection callback even in collision
case to allow SCO statemachine move to proper state.

Change-Id: I077b4b9c795bb8130bde5fe1cff98c88d570de44

7 years agoBT: Initializing the SDP event message pointer before sending
Manu Viswanadhan [Tue, 7 Jun 2016 10:51:18 +0000 (16:21 +0530)]
BT: Initializing the SDP event message pointer before sending

In case of SDP_ServiceSearchAttributeRequest failure, garbage value
might be sent for discovery result structure, leading to crash.
Initializing the structure to zero to avoid this scenario.

Change-Id: I46d92d6262bae3b5def5401270465a3a06468c1a
CRs-Fixed: 1023388

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Tue, 28 Jun 2016 07:04:16 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoAdd Subaru and Nissan car kits to auto pair blacklist
Andre Eisenbach [Mon, 27 Jun 2016 22:49:53 +0000 (15:49 -0700)]
Add Subaru and Nissan car kits to auto pair blacklist

Bug: 29157087
Change-Id: If227963b939a9b0ed55e6d900364c71932d3cfe8

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Sun, 26 Jun 2016 07:04:02 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoA2DP media task: Flush full TX queue on congestion
Andre Eisenbach [Thu, 23 Jun 2016 23:14:53 +0000 (16:14 -0700)]
A2DP media task: Flush full TX queue on congestion

Currently, our TX queue does not allow for quick recovery of minor
congestion. As we only clear as much room in the queue as is needed to
fix the news frames needed for a given timer tick, any minor congestion
on the TX path can result in single frames to be dropped over an
excessively long amount of time.

From the "just rip the band-aid off" school of thought, drop the whole
queue instead to cause a single drop-out on congestion and catch up to
the live stream immediately, hoping that the stream recovers...

Bug: 29601962
Change-Id: I482c3cfef6d8b51143e54733eb2da5f70663636f

8 years agoMerge "Remove SBC frame scrambling" into nyc-dev
Andre Eisenbach [Fri, 24 Jun 2016 17:16:52 +0000 (17:16 +0000)]
Merge "Remove SBC frame scrambling" into nyc-dev

8 years agoRemove SBC frame scrambling
Andre Eisenbach [Thu, 23 Jun 2016 22:25:44 +0000 (15:25 -0700)]
Remove SBC frame scrambling

Bug: 29601962
Change-Id: I30ce09f1c7550a1be9fd1c8ed70745f9aa0cdb44

8 years agoRemove log spam in btif_gattc_update_properties
Andre Eisenbach [Thu, 23 Jun 2016 21:22:35 +0000 (14:22 -0700)]
Remove log spam in btif_gattc_update_properties

Bug: 29601962
Change-Id: I4a86b786609b0203a72b750a1c4a38c82fcc5f97

8 years agoresolve merge conflicts of 1f433cb to mnc-dr-dev am: f15ca6d21d -s ours am: 8e80a26078
Sharvil Nanavati [Wed, 22 Jun 2016 01:19:12 +0000 (01:19 +0000)]
resolve merge conflicts of 1f433cb to mnc-dr-dev am: f15ca6d21d  -s ours am: 8e80a26078
am: edb7ce120e

Change-Id: Ie7ea41474e11479b54ba526294977dfaa60c8cd7

8 years agoresolve merge conflicts of 1f433cb to mnc-dr-dev am: f15ca6d21d -s ours
Sharvil Nanavati [Wed, 22 Jun 2016 01:16:24 +0000 (01:16 +0000)]
resolve merge conflicts of 1f433cb to mnc-dr-dev am: f15ca6d21d  -s ours
am: 8e80a26078

Change-Id: I54a690024ccd316058d9d59ff7b16206f7fcd543

8 years agoresolve merge conflicts of 1f433cb to mnc-dr-dev
Sharvil Nanavati [Wed, 22 Jun 2016 01:13:44 +0000 (01:13 +0000)]
resolve merge conflicts of 1f433cb to mnc-dr-dev
am: f15ca6d21d  -s ours

Change-Id: Ic1a23e2c6d0284b9fdf346a681f59cdcbaa599e0

8 years agoresolve merge conflicts of 1f433cb to mnc-dr-dev
Sharvil Nanavati [Tue, 21 Jun 2016 22:56:42 +0000 (15:56 -0700)]
resolve merge conflicts of 1f433cb to mnc-dr-dev

Change-Id: I7278875d21c59316217cb1b99d902f4fc248ca06

8 years agoDO NOT MERGE Fix potential DoS caused by delivering signal to BT process
Sharvil Nanavati [Tue, 21 Jun 2016 02:16:12 +0000 (19:16 -0700)]
DO NOT MERGE Fix potential DoS caused by delivering signal to BT process

Bug: 28885210
Change-Id: I63866d894bfca47464d6e42e3fb0357c4f94d360

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Tue, 21 Jun 2016 07:03:55 +0000 (00:03 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoL2CAP: Handle invalid HCI packets
Matadeen Mishra [Wed, 3 Feb 2016 12:43:39 +0000 (18:13 +0530)]
L2CAP: Handle invalid HCI packets

- Handled Buffer over flow for uint16_t
- Discard invalid HCI packets from Codenomican test
  tool as data length and actual data not matching
  during reassembly

Use case:
Execute L2CAP test suit from Defensics Codenomican

Steps:
1. Pair and connect DUT to Codenomican tool
2. Execute L2CAP test suit from Defensics Codenomican

Failure:
Crash observed on DUT and Codenomican tool stuck in execution.

Root cause:
Codenomican tool sending invalid HCI packets to DUT and
there are no checks to handle buffer over flow and other invalid data
from Codenomican tool.

Bug: 29498064
Change-Id: I6f93c80244fc39d607ad285185136bbbca83d7ae

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Sun, 19 Jun 2016 07:05:37 +0000 (00:05 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoAdd missing NULL pointers assignments
Pavlin Radoslavov [Thu, 16 Jun 2016 23:37:57 +0000 (16:37 -0700)]
Add missing NULL pointers assignments

Each pointer that was freed by one of the following functions should
be reset to NULL:
 - config_free()
 - data_dispatcher_free()
 - fixed_queue_free()
 - list_free()

Bug: 29421693
Change-Id: Ie55a04ed986393994564edcf872d7413b0767a85
(cherry picked from commit 8cbc291080730cd7d04990a8fc0e11249b06aa08)

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Thu, 16 Jun 2016 07:04:43 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoImprove BT HAL write response to BT server reads
Andy Hung [Wed, 15 Jun 2016 02:58:58 +0000 (19:58 -0700)]
Improve BT HAL write response to BT server reads

By polling, we ensure the socket buffer is nearly always full,
as blocking socket writes may not wake in time to avoid underflow.

Bug: 28286313
Change-Id: I056768dbd860993c41d44c33a4846d62c50db933

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Wed, 15 Jun 2016 07:04:32 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoMerge "HOGP: Clear pending operations for a given device on connect" into nyc-dev
TreeHugger Robot [Wed, 15 Jun 2016 00:28:58 +0000 (00:28 +0000)]
Merge "HOGP: Clear pending operations for a given device on connect" into nyc-dev

8 years agoMerge "HOGP: Preffer write command over write requests" into nyc-dev
TreeHugger Robot [Tue, 14 Jun 2016 23:28:20 +0000 (23:28 +0000)]
Merge "HOGP: Preffer write command over write requests" into nyc-dev

8 years agoMerge "Use UINT16 for GATT attribute id field" into nyc-dev
Jakub Pawlowski [Tue, 14 Jun 2016 22:03:29 +0000 (22:03 +0000)]
Merge "Use UINT16 for GATT attribute id field" into nyc-dev

8 years agoHOGP: Preffer write command over write requests
Jakub Pawlowski [Tue, 14 Jun 2016 21:40:51 +0000 (14:40 -0700)]
HOGP: Preffer write command over write requests

Some HID devices will accept both write request and write command.
Prefer write commands when possible.

This is due to bug in some hardware, that will not send write response
when too many commands are queued.

Bug: 29184976
Change-Id: I5bafc067f044a48f152c60b8e17722067bc1453e

8 years agoUse UINT16 for GATT attribute id field
Jakub Pawlowski [Tue, 14 Jun 2016 19:47:52 +0000 (12:47 -0700)]
Use UINT16 for GATT attribute id field

Id field is equal to attribute handle, so it must be 16bits.
Otherwise only piece of GATT database can be used.

Bug: 29253825
Change-Id: Ia88e3ad3eb96ca8e97349aa5e852e66c57072b49

8 years agoFix missing GATT Characteristic from last service
Jakub Pawlowski [Tue, 14 Jun 2016 19:23:44 +0000 (12:23 -0700)]
Fix missing GATT Characteristic from last service

GATT Service is contained between start and end handle. If
characteristic definition is at end handle, and it's value definition is
after end handle, it will not be properly discovered. That's because we
use value_handle instead of attribute_handle to identify
characteristics.

As a workaround, increase service boundary if value is defined after
it's definition.

Bug: 29253825
Change-Id: Ib145aea4f5cf38a1fbb977c301136e16f8f900f7

8 years agoHOGP: Clear pending operations for a given device on connect
Jakub Pawlowski [Mon, 13 Jun 2016 17:30:17 +0000 (10:30 -0700)]
HOGP: Clear pending operations for a given device on connect

If there are any HID operations scheduled after disconnect, mark the
device as no longer executing after establishing connection. Otherwise
we'll be unable to send any HID commands to it.

Change-Id: Ie1bb622388a3bcb574dec3dde76ef4518ee1102f

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Sun, 12 Jun 2016 07:05:19 +0000 (00:05 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoHOGP: Clear pending operations for a given device on disconnect
Jakub Pawlowski [Fri, 10 Jun 2016 23:32:26 +0000 (16:32 -0700)]
HOGP: Clear pending operations for a given device on disconnect

If there are any GATT operations interrupted by a disconnect, mark the
device as no longer executing. Otherwise we'll stil receive data from
the device, but we'll be unable to send any HID commands to it.

Bug: 29184976
Change-Id: I489f41c970abad0ff1145005d3250beafa83d27e

8 years agoDo not request AVRC_CAP_COMPANY_ID if A2DP Sink is not enabled
AnubhavGupta [Wed, 6 Apr 2016 06:17:05 +0000 (11:47 +0530)]
Do not request AVRC_CAP_COMPANY_ID if A2DP Sink is not enabled

Also fixed AVRC_PDU_GET_PLAY_STATUS timeout response.

Bug: 28177785
Change-Id: Icde64a5c1806453850abe101f9707fff61566566
(cherry picked from commit 1c512b851d76deac860fce1232e4a1fa1a097f1c)

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Thu, 9 Jun 2016 07:05:08 +0000 (00:05 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoSet disable timer in case of any active ACL connection
Srinu Jella [Wed, 8 Jun 2016 10:20:53 +0000 (15:50 +0530)]
Set disable timer in case of any active ACL connection

Use Case: Disable time out when atleast one active ACL connections

Steps:
1. Turn ON Bluetooth
2. Connect to any Headset
3. Turn OFF bluetooth.

Failure: Turn OFF bluetooth is failed when atleast one active ACL connections

Root Cause:i If we have one or more active ACL links, so it is not notitying
BTA_DM_DISABLE_EVT to upper layer.

Fix: Set disable timer in case of any active ACL connection

Bug: 29217385

Change-Id: Ica47717119f1ab9fa9f4f5244e8483c408276a2a
(cherry picked from commit 3e4f01ada8c1627bd48f31cd0c8269984b8e5f96)

8 years agoMerge "btm: Restrict EXTENDED_INQUIRY_RESULT to 1 result" into nyc-dev
TreeHugger Robot [Wed, 8 Jun 2016 22:03:23 +0000 (22:03 +0000)]
Merge "btm: Restrict EXTENDED_INQUIRY_RESULT to 1 result" into nyc-dev

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Wed, 8 Jun 2016 07:03:58 +0000 (00:03 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoMerge "Fix payload size for GATT Read by type request" into nyc-dev
TreeHugger Robot [Wed, 8 Jun 2016 01:30:28 +0000 (01:30 +0000)]
Merge "Fix payload size for GATT Read by type request" into nyc-dev

8 years agoMerge "Reject L2CAP INFO RSP and ECHO RSP on the LE signaling channel" into nyc-dev
Pankaj Kanwar [Wed, 8 Jun 2016 01:28:49 +0000 (01:28 +0000)]
Merge "Reject L2CAP INFO RSP and ECHO RSP on the LE signaling channel" into nyc-dev

8 years agoFix payload size for GATT Read by type request
Subramanian Srinivasan [Fri, 27 May 2016 23:32:55 +0000 (16:32 -0700)]
Fix payload size for GATT Read by type request

Payload size for GATT Read by type request for UUID32 and UUID128
are incorrectly allocated. This leads to memory overflow when
Read by type request is sent for them and eventually results
in crash during free. This change makes sure that the payload
can accomodate upto 128 bit UUID.

This crash is observed while running TC_GAR_CL_BV_03_C Qual test
case.

Bug: 29011042
Change-Id: Ib2b41b769b394670099f4549f204e2972f7df876
(cherry picked from commit 7da98621a4dfa8196b8d20e8955ad508f540e5d9)

8 years agoReject L2CAP INFO RSP and ECHO RSP on the LE signaling channel
Venkata Jagadeesh [Fri, 27 May 2016 10:06:20 +0000 (15:36 +0530)]
Reject L2CAP INFO RSP and ECHO RSP on the LE signaling channel

Steps:
Execute TC_LE_REJ_BI_02_C

Failure:
PTS stuck after sending INFO RSP, ECHO RSP on the LE signaling channel

Root Cause:
The Bluetooth stack is not rejecting INFO RSP, ECHO RSP even though
these commands are invalid for the LE signaling Channel.

Fix:
Reject the INFO RSP, ECHO RSP with error L2CAP_CMD_REJ_NOT_UNDERSTOOD.

Bug: 27852645
Change-Id: Ie09f658d606206cbdbea928e8cb6d10332743cf4
(cherry picked from commit d35bb40dd563e7f37df0a2fa9c0f61d0958b9601)

8 years agobtm: Restrict EXTENDED_INQUIRY_RESULT to 1 result
Myles Watson [Tue, 7 Jun 2016 23:14:18 +0000 (16:14 -0700)]
btm: Restrict EXTENDED_INQUIRY_RESULT to 1 result

The spec only allows one result per event.
Abort processing and return if the spec is not followed.

Bug: 29141745
Change-Id: Ic414b28adadec274779b0d953d12d499a619aff6
Signed-off-by: Myles Watson <mylesgw@google.com>
8 years agoRemote device changes for SMP certification
Nitin Arora [Tue, 15 Mar 2016 22:00:36 +0000 (15:00 -0700)]
Remote device changes for SMP certification

Use Case:
Certification test cases for SMP require various scenarios
where the remote device needs to show a specific behavior
where it fails the pairing in a certain way, and the DUT is
required to abort the pairing properly.
In abcense of a proper PTS suite to execute these test cases,
we can use another device running the same host by configuring
certain run time property.

Test Cases:
TP/SCJW/BI-02-C
TP/SCJW/BV-02-C
TP/SCPK/BI-03-C
TP/SCPK/BI-04-C
TP/SCPK/BV-02-C
TP/SCPK/BV-03-C
TP/SCJW/BI-01-C
TP/SCCT/BV-01-C
TP/SCCT/BV-02-C
TP/SCPK/BI-01-C
TP/SCPK/BI-02-C
TP/SCPK/BV-04-C
TP/SCPK/BV-01-C

Fix:
Added a property in the bt_stack.conf file. The property name
is "SmpFailureCase". The values 2 to 6(inclusive), are forcausing SMP
failures with various failure reasons.
Failure case 1 and 9 are for producing error "Confirm value failure".
Cases 7 and 8 are for generating specific errors at pair cancel.

Note:
The default use of this feature is controlled using a compile
time flag BTM_BLE_SMP_CERTIFICATION.
The BTM_BLE_SMP_CERTIFICATION = TRUE is needed only while we
wait for the PTS support for the LE Secure connections.

Bug: 27852645
Change-Id: I1f7a8ff2659d85b5978b75870c57162a34d394d0
(cherry picked from commit 0bd0c8fc88a7141691a7ca839b11cb711945ee33)

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Tue, 7 Jun 2016 07:04:32 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoMerge "Revert "DO NOT MERGE Proper construction of AVDTP general reject message"...
Pankaj Kanwar [Tue, 7 Jun 2016 00:09:01 +0000 (00:09 +0000)]
Merge "Revert "DO NOT MERGE Proper construction of AVDTP general reject message"" into nyc-dev

8 years agoMerge "Clear BLE block from device records at unpair" into nyc-dev
Pankaj Kanwar [Tue, 7 Jun 2016 00:07:46 +0000 (00:07 +0000)]
Merge "Clear BLE block from device records at unpair" into nyc-dev

8 years agoClear BLE block from device records at unpair
Nitin Arora [Mon, 25 Apr 2016 21:47:51 +0000 (14:47 -0700)]
Clear BLE block from device records at unpair

Use Case:
Pair and unpair LE remote device repeatedly. The repair
intermittently fails with the error "DHKey Check Failure"

Failure:
Pairing failure is observed when pairing is performed
after unpairing, without performing a BT reset.
Further analysis of the SMP logs indicate that DUT uses the
static address of the remote device for calculation of the
MacKey value. At the time of pairing, the remote RPA should
be used (and the static address has not yet been distributed either).
The problem is caused by the previous dev record which is left in
the stack, and at the time of repair, stack picks the old device
record and reuses it.

Fix:
This change removes the entire BLE block from the device record,
after the unpairing is performed, so that a new device record
is allocated, after the repairing is done.

Bug: 27852645
Change-Id: I8d605d1bb3b1c32061a8d8a7a7fe0fe200030abc

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

Bug: 27852645
Change-Id: Idfc960ce00662e8aacc26f3b3fdca9deca8a2aff

8 years agoFix for issue introduced due to rebase of LE L2CAP COC
Navin Kochar [Fri, 18 Mar 2016 06:34:30 +0000 (12:04 +0530)]
Fix for issue introduced due to rebase of LE L2CAP COC

During 6721232 patch, some code got missed while doing manual rebase.
This patch is adding that missing code.

Bug: 27852645
Change-Id: I2525908c29e3288e0ace1ee26c5f2aa6cfd59d68
Signed-off-by: Navin Kochar <navin.kochar@intel.com>
8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Wed, 1 Jun 2016 07:04:17 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoHID: Check for EINTR in uhid_event() and fix return value evaluation
Andre Eisenbach [Mon, 30 May 2016 19:00:46 +0000 (12:00 -0700)]
HID: Check for EINTR in uhid_event() and fix return value evaluation

uhid_event() returns 0 in the normal case. Commit 3a2c2d61
results in the polling thread to be exited.

Bug: 28942565
Change-Id: Id0aff2958bc7c2704ba340aa0ff7848afb8dcf80

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Sun, 29 May 2016 07:05:55 +0000 (00:05 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoUpdate the HCI unit test if BT_CLEAN_TURN_ON_DISABLED is TRUE
Pavlin Radoslavov [Fri, 27 May 2016 19:07:06 +0000 (12:07 -0700)]
Update the HCI unit test if BT_CLEAN_TURN_ON_DISABLED is TRUE

Bug: 28614494
Change-Id: I3f4a923f9e14faef57b2d694bfc253fd10749414
(cherry picked from commit 7496372239773b7121359a34291681b749beda5f)

8 years agoAdd minimum LE connection timeout that can be used for HID devices
Jakub Pawlowski [Thu, 26 May 2016 22:13:04 +0000 (15:13 -0700)]
Add minimum LE connection timeout that can be used for HID devices

Fixes: 28979841
Change-Id: I520608a13224601fb9101d00c08b34cdb0f8d374

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Thu, 26 May 2016 07:04:19 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoRemove the RFComm MCB from the ports when releasing it
Pavlin Radoslavov [Thu, 26 May 2016 01:08:29 +0000 (18:08 -0700)]
Remove the RFComm MCB from the ports when releasing it

Bug: 28849621
Change-Id: I3ce1c857d0d0a2c00c59d8f71b40685ae602dc29
(cherry picked from commit 1f9eb3d62c78bae8b429a48f71629d6e53f9fc87)

8 years agoImprove config file sync during configuration save.
Jacky Cheung [Wed, 18 May 2016 22:41:09 +0000 (15:41 -0700)]
Improve config file sync during configuration save.

Add fsync() calls to force sync to disk while saving configuration
file.  It is necessary to do a sync on the temp file before rename,
and to sync again on its parent directory to ensure both the
file content and the directory are up-to-date.

Bug: 27354612

Change-Id: I3a862ad59c8ae5beb8ea2c727eb5f275a2d5823e
(cherry picked from commit 95dbe03a693f4a920204b8c6acbba5269915a59f)

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Wed, 25 May 2016 07:04:55 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoLimit number of SBC frames to fit into single MTU
Ayan Ghosh [Mon, 11 Nov 2013 13:55:16 +0000 (19:25 +0530)]
Limit number of SBC frames to fit into single MTU

- Calculate number of SBC frames to fit into single MTU for EDR capable
  remote devices. This makes sure the maximum utilization of the
  available bandwidth, keeping the bitrate at high quality.
- This change helps to address the discrepancy seen with a few available
  2 Mbps headsets which set the AVDTP media MTU size greater than the
  2DH5 packet payload size which eventually forces AVDTP packets to get
  fragmented in the controller. This change ensures packing of the SBC
  frames in a way that AVDTP packet size fits within the 2DH5 payload
  size.
- As packet size is restricted to meet the required bit rate more than
  one AVDTP packet can be sent to the controller in a given iteration
  based on the bit rate requirement.

Bug: 24875861
Change-Id: Icae7656ad563bbbdef65ecbfa15a89b26cf9edb2

8 years agoMerge "Fix crashes in btif_sendmsg when worqueue not initialized" into nyc-dev
Jakub Pawlowski [Tue, 24 May 2016 22:16:05 +0000 (22:16 +0000)]
Merge "Fix crashes in btif_sendmsg when worqueue not initialized" into nyc-dev

8 years agoMerge "Add guest mode functionality (2/3)" into mnc-dev am: 4439d380e5 am: 99bbe2fffe...
Ajay Panicker [Tue, 24 May 2016 22:15:52 +0000 (22:15 +0000)]
Merge "Add guest mode functionality (2/3)" into mnc-dev am: 4439d380e5 am: 99bbe2fffe  -s ours am: 34619f8e30
am: 84970d1300

* commit '84970d13000623b266a72433474c4c2ae6abd3c6':
  Add guest mode functionality (2/3)

Change-Id: I8e26f8bb0fa6898427507dfc888dfb6fd743fcac

8 years agoMerge "Add guest mode functionality (2/3)" into mnc-dev am: 4439d380e5 am: 99bbe2fffe...
Ajay Panicker [Tue, 24 May 2016 22:13:00 +0000 (22:13 +0000)]
Merge "Add guest mode functionality (2/3)" into mnc-dev am: 4439d380e5 am: 99bbe2fffe  -s ours
am: 34619f8e30

* commit '34619f8e30adb98a2a605665b02df16a9fda6032':
  Add guest mode functionality (2/3)

Change-Id: I00a7ad9675ba8e3f68e2066aca2fd1a5baaf06db

8 years agoMerge "Add guest mode functionality (2/3)" into mnc-dev am: 4439d380e5
Ajay Panicker [Tue, 24 May 2016 22:10:22 +0000 (22:10 +0000)]
Merge "Add guest mode functionality (2/3)" into mnc-dev am: 4439d380e5
am: 99bbe2fffe  -s ours

* commit '99bbe2fffe98c57295a26d35b30e15c432d6a1e3':
  Add guest mode functionality (2/3)

Change-Id: Ie493166a8d452f2892bb96323b23527efe053dd7

8 years agoMerge "Add guest mode functionality (2/3)" into mnc-dev
Ajay Panicker [Tue, 24 May 2016 22:02:04 +0000 (22:02 +0000)]
Merge "Add guest mode functionality (2/3)" into mnc-dev
am: 4439d380e5

* commit '4439d380e5e2ec3c24b04f7eba1bcbceae78191a':
  Add guest mode functionality (2/3)

Change-Id: Ia13560babbc18e2ee290e16f9b03fb5202894c23

8 years agoMerge "Add guest mode functionality (2/3)" into mnc-dev
Ajay Panicker [Tue, 24 May 2016 21:53:32 +0000 (21:53 +0000)]
Merge "Add guest mode functionality (2/3)" into mnc-dev

8 years agoFix crashes in btif_sendmsg when worqueue not initialized
Jakub Pawlowski [Tue, 24 May 2016 16:15:50 +0000 (09:15 -0700)]
Fix crashes in btif_sendmsg when worqueue not initialized

Instead of crashing whole stack when trying to post task to
uninitialized queue, log error message. This can happen in two cases:
stack is not initialized yet, or we're shutting down and already cleaned
up the workqueue thread.

Bug: 28889608
Change-Id: I9b8652d27abc2489b2489997c928634b68433a3e

8 years agoDon't disconnect on failure to register for service changed notification
Jakub Pawlowski [Mon, 23 May 2016 21:47:48 +0000 (14:47 -0700)]
Don't disconnect on failure to register for service changed notification

Bug: 28721625
Change-Id: I2214fb2576f0f0794922ed9b47d8805839d69bfd

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Sun, 22 May 2016 07:05:39 +0000 (00:05 -0700)]
merge in nyc-release history after reset to nyc-dev

8 years agoMerge "Improve poll(2) handling and log messages" into nyc-dev
TreeHugger Robot [Thu, 19 May 2016 22:39:37 +0000 (22:39 +0000)]
Merge "Improve poll(2) handling and log messages" into nyc-dev

8 years agoImprove poll(2) handling and log messages
Pavlin Radoslavov [Wed, 18 May 2016 21:34:31 +0000 (14:34 -0700)]
Improve poll(2) handling and log messages

 * Better error handling and log messages inside
   uipc_flush_ch_locked()
 * Add missing error check inside UIPC_Read()
 * Add missing OSI_NO_INTR() wrapper around poll()
   inside function btu_exec_tap_fd_read()

Bug: 28823662
Change-Id: I5f1c720861bea594d53ed6465a5ff327ba352598

8 years agoAdd error log messages for A2DP commands
Pavlin Radoslavov [Wed, 18 May 2016 21:30:53 +0000 (14:30 -0700)]
Add error log messages for A2DP commands

Bug: 28823662
Change-Id: Ifa9950dd2277b444bedd5108beff2db029a5ed93

8 years agomerge in nyc-release history after reset to nyc-dev
The Android Automerger [Thu, 19 May 2016 07:04:14 +0000 (00:04 -0700)]
merge in nyc-release history after reset to nyc-dev