[xenial] SRU: Bluetooth: increase timeout for le auto connections

Konrad Zapalowicz konrad.zapalowicz at canonical.com
Fri Nov 10 12:11:05 UTC 2017

SRU Justification:


Not possible to pair BLE remote devices such as sensors and such with
Ubuntu when the host system uses BT+WiFi combo SoC. The connection
attempt is disturbed with a timeout.


It has been fixed by increasing the timeout value from 2 seconds to
4 seconds. It is enough for the events to reach the stack (measured
that it takes between 3 and 3.5 seconds).


Tested with the device that failed to connect to Ubuntu Core gateway.
It fails w/o the patch, it connects just fine with the patch applied.

[Regression Potential]

Very small. The increased timeout is taken into consideration only for
new and scan report triggered connections. It will not make any already
working device to fail to pair.

[Other Info]

The bug has been discussed and fixed here:



The patch has been accepted by the upstream and will be a part of the
next kernel release. Currently in the bluetooth-next tree.


>From 2d5a130b6cf6cbf992f9a7a66dcab8ab4e8e15f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Konrad=20Zapa=C5=82owicz?= <konrad.zapalowicz at canonical.com>
Date: Tue, 17 Oct 2017 15:53:49 +0200
Subject: [PATCH] [xenial] (upstream) Bluetooth: increase timeout for le auto
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

BugLink: https://bugs.launchpad.net/bugs/1731467

This patch increases the connection timeout for LE connections that are
triggered by the advertising report to 4 seconds.

It has been observed that devices equipped with wifi+bt combo SoC fail
to create a connection with BLE devices due to their coexistence issues.
Increasing this timeout gives them enough time to complete the
connection with success.

Signed-off-by: Konrad ZapaƂowicz <konrad.zapalowicz at canonical.com>
Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
(cherry picked from commit 1f01d8be0e6a04bd682a55f6d50c14c1679e7571)
 include/net/bluetooth/hci.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 0205b80..630f6d7 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -266,7 +266,7 @@ enum {
 #define HCI_AUTO_OFF_TIMEOUT	msecs_to_jiffies(2000)	/* 2 seconds */
 #define HCI_POWER_OFF_TIMEOUT	msecs_to_jiffies(5000)	/* 5 seconds */
 #define HCI_LE_CONN_TIMEOUT	msecs_to_jiffies(20000)	/* 20 seconds */
-#define HCI_LE_AUTOCONN_TIMEOUT	msecs_to_jiffies(2000)	/* 2 seconds */
+#define HCI_LE_AUTOCONN_TIMEOUT	msecs_to_jiffies(4000)	/* 4 seconds */
 /* HCI data types */
 #define HCI_COMMAND_PKT		0x01

More information about the kernel-team mailing list