aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2014-06-30 06:34:36 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-07-03 11:42:51 -0400
commit04fb7d9066dd9173ef0d4ccea8fe3bb59bd94605 (patch)
tree9d55d6113ff0a9bccfdbe2b781167a878bd98d0e
parent8afef092a192cb946393bb11cc95b59739c1e57b (diff)
Bluetooth: Provide defaults for LE connection latency and timeout
Store the connection latency and supervision timeout default values with all the other controller defaults. And when needed use them for new connections. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
-rw-r--r--include/net/bluetooth/hci_core.h2
-rw-r--r--net/bluetooth/hci_conn.c4
-rw-r--r--net/bluetooth/hci_core.c6
3 files changed, 8 insertions, 4 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 182044824495..ed842c7e5cf1 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -203,6 +203,8 @@ struct hci_dev {
203 __u16 le_scan_window; 203 __u16 le_scan_window;
204 __u16 le_conn_min_interval; 204 __u16 le_conn_min_interval;
205 __u16 le_conn_max_interval; 205 __u16 le_conn_max_interval;
206 __u16 le_conn_latency;
207 __u16 le_supv_timeout;
206 __u16 discov_interleaved_timeout; 208 __u16 discov_interleaved_timeout;
207 __u16 conn_info_min_age; 209 __u16 conn_info_min_age;
208 __u16 conn_info_max_age; 210 __u16 conn_info_max_age;
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index e7ee7267f846..d00aaf976efc 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -773,8 +773,8 @@ struct hci_conn *hci_connect_le(struct hci_dev *hdev, bdaddr_t *dst,
773 } else { 773 } else {
774 conn->le_conn_min_interval = hdev->le_conn_min_interval; 774 conn->le_conn_min_interval = hdev->le_conn_min_interval;
775 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; 776 conn->le_conn_latency = hdev->le_conn_latency;
777 conn->le_supv_timeout = 0x002a; 777 conn->le_supv_timeout = hdev->le_supv_timeout;
778 } 778 }
779 779
780 /* If controller is scanning, we stop it since some controllers are 780 /* If controller is scanning, we stop it since some controllers are
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 8d972023196b..94551c33c4c6 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -3439,8 +3439,8 @@ int hci_conn_params_add(struct hci_dev *hdev, bdaddr_t *addr, u8 addr_type,
3439update: 3439update:
3440 params->conn_min_interval = conn_min_interval; 3440 params->conn_min_interval = conn_min_interval;
3441 params->conn_max_interval = conn_max_interval; 3441 params->conn_max_interval = conn_max_interval;
3442 params->conn_latency = 0x0000; 3442 params->conn_latency = hdev->le_conn_latency;
3443 params->supervision_timeout = 0x002a; 3443 params->supervision_timeout = hdev->le_supv_timeout;
3444 params->auto_connect = auto_connect; 3444 params->auto_connect = auto_connect;
3445 3445
3446 switch (auto_connect) { 3446 switch (auto_connect) {
@@ -3706,6 +3706,8 @@ struct hci_dev *hci_alloc_dev(void)
3706 hdev->le_scan_window = 0x0030; 3706 hdev->le_scan_window = 0x0030;
3707 hdev->le_conn_min_interval = 0x0028; 3707 hdev->le_conn_min_interval = 0x0028;
3708 hdev->le_conn_max_interval = 0x0038; 3708 hdev->le_conn_max_interval = 0x0038;
3709 hdev->le_conn_latency = 0x0000;
3710 hdev->le_supv_timeout = 0x002a;
3709 3711
3710 hdev->rpa_timeout = HCI_DEFAULT_RPA_TIMEOUT; 3712 hdev->rpa_timeout = HCI_DEFAULT_RPA_TIMEOUT;
3711 hdev->discov_interleaved_timeout = DISCOV_INTERLEAVED_TIMEOUT; 3713 hdev->discov_interleaved_timeout = DISCOV_INTERLEAVED_TIMEOUT;