]> git.dujemihanovic.xyz Git - linux.git/commitdiff
LE Create Connection command timeout increased to 20 secs
authorMahesh Talewad <mahesh.talewad@nxp.com>
Thu, 2 May 2024 09:01:23 +0000 (12:01 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 14 May 2024 14:51:08 +0000 (10:51 -0400)
On our DUT, we can see that the host issues create connection cancel
command after 4-sec if there is no connection complete event for
LE create connection cmd.
As per core spec v5.3 section 7.8.5, advertisement interval range is-

Advertising_Interval_Min
Default : 0x0800(1.28s)
Time Range: 20ms to 10.24s

Advertising_Interval_Max
Default : 0x0800(1.28s)
Time Range: 20ms to 10.24s

If the remote device is using adv interval of > 4 sec, it is
difficult to make a connection with the current timeout value.
Also, with the default interval of 1.28 sec, we will get only
3 chances to capture the adv packets with the 4 sec window.
Hence we want to increase this timeout to 20sec.

Signed-off-by: Mahesh Talewad <mahesh.talewad@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
include/net/bluetooth/hci.h
net/bluetooth/hci_core.c

index c4c6b881070100cddeddd78cfaabf34d55cd8a59..38eb7ec86a1a65035caaac720d402e3c0f108c2b 100644 (file)
@@ -456,7 +456,6 @@ enum {
 #define HCI_AUTO_OFF_TIMEOUT   msecs_to_jiffies(2000)  /* 2 seconds */
 #define HCI_ACL_CONN_TIMEOUT   msecs_to_jiffies(20000) /* 20 seconds */
 #define HCI_LE_CONN_TIMEOUT    msecs_to_jiffies(20000) /* 20 seconds */
-#define HCI_LE_AUTOCONN_TIMEOUT        msecs_to_jiffies(4000)  /* 4 seconds */
 
 /* HCI data types */
 #define HCI_COMMAND_PKT                0x01
index 34cd058564018f58cbbcf22a4541851c63d8c971..b5212551298558a89cd3e9fd1a5a277985529f44 100644 (file)
@@ -2556,7 +2556,7 @@ struct hci_dev *hci_alloc_dev_priv(int sizeof_priv)
        hdev->le_rx_def_phys = HCI_LE_SET_PHY_1M;
        hdev->le_num_of_adv_sets = HCI_MAX_ADV_INSTANCES;
        hdev->def_multi_adv_rotation_duration = HCI_DEFAULT_ADV_DURATION;
-       hdev->def_le_autoconnect_timeout = HCI_LE_AUTOCONN_TIMEOUT;
+       hdev->def_le_autoconnect_timeout = HCI_LE_CONN_TIMEOUT;
        hdev->min_le_tx_power = HCI_TX_POWER_INVALID;
        hdev->max_le_tx_power = HCI_TX_POWER_INVALID;