aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2014-06-29 10:43:27 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-07-03 11:42:50 -0400
commit037fc415bce5ac7604ac52216ec03d011f81e5b0 (patch)
treeece16892de6b8640007ee9b638d9e993a5626038 /net
parentf044eb0524a02ea7f921c9234fbdba43290da1e2 (diff)
Bluetooth: Use LE connection parameters if known
When the LE connection parameters for connection latency and supervision timeout are known, then use then. If they are not know fallback to defaults. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/hci_conn.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index adb413d77637..e7ee7267f846 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -645,7 +645,8 @@ static void hci_req_add_le_create_conn(struct hci_request *req,
645 cp.own_address_type = own_addr_type; 645 cp.own_address_type = own_addr_type;
646 cp.conn_interval_min = cpu_to_le16(conn->le_conn_min_interval); 646 cp.conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
647 cp.conn_interval_max = cpu_to_le16(conn->le_conn_max_interval); 647 cp.conn_interval_max = cpu_to_le16(conn->le_conn_max_interval);
648 cp.supervision_timeout = cpu_to_le16(0x002a); 648 cp.conn_latency = cpu_to_le16(conn->le_conn_latency);
649 cp.supervision_timeout = cpu_to_le16(conn->le_supv_timeout);
649 cp.min_ce_len = cpu_to_le16(0x0000); 650 cp.min_ce_len = cpu_to_le16(0x0000);
650 cp.max_ce_len = cpu_to_le16(0x0000); 651 cp.max_ce_len = cpu_to_le16(0x0000);
651 652
@@ -767,9 +768,13 @@ struct hci_conn *hci_connect_le(struct hci_dev *hdev, bdaddr_t *dst,
767 if (params) { 768 if (params) {
768 conn->le_conn_min_interval = params->conn_min_interval; 769 conn->le_conn_min_interval = params->conn_min_interval;
769 conn->le_conn_max_interval = params->conn_max_interval; 770 conn->le_conn_max_interval = params->conn_max_interval;
771 conn->le_conn_latency = params->conn_latency;
772 conn->le_supv_timeout = params->supervision_timeout;
770 } else { 773 } else {
771 conn->le_conn_min_interval = hdev->le_conn_min_interval; 774 conn->le_conn_min_interval = hdev->le_conn_min_interval;
772 conn->le_conn_max_interval = hdev->le_conn_max_interval; 775 conn->le_conn_max_interval = hdev->le_conn_max_interval;
776 conn->le_conn_latency = 0x0000;
777 conn->le_supv_timeout = 0x002a;
773 } 778 }
774 779
775 /* If controller is scanning, we stop it since some controllers are 780 /* If controller is scanning, we stop it since some controllers are