Selaa lähdekoodia

Bluetooth: Store current LE connection parameters in hci_conn struct

The LE connection parameters are needed later on to be able to decide
if it is required to trigger connection update procedures. So when the
connection has been established successfully, store the current used
parameters in hci_conn struct.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Marcel Holtmann 11 vuotta sitten
vanhempi
commit
e04fde60ef
2 muutettua tiedostoa jossa 7 lisäystä ja 0 poistoa
  1. 3 0
      include/net/bluetooth/hci_core.h
  2. 4 0
      net/bluetooth/hci_event.c

+ 3 - 0
include/net/bluetooth/hci_core.h

@@ -381,6 +381,9 @@ struct hci_conn {
 	__u16		setting;
 	__u16		setting;
 	__u16		le_conn_min_interval;
 	__u16		le_conn_min_interval;
 	__u16		le_conn_max_interval;
 	__u16		le_conn_max_interval;
+	__u16		le_conn_interval;
+	__u16		le_conn_latency;
+	__u16		le_supv_timeout;
 	__s8		rssi;
 	__s8		rssi;
 	__s8		tx_power;
 	__s8		tx_power;
 	__s8		max_tx_power;
 	__s8		max_tx_power;

+ 4 - 0
net/bluetooth/hci_event.c

@@ -4056,6 +4056,10 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
 	conn->handle = __le16_to_cpu(ev->handle);
 	conn->handle = __le16_to_cpu(ev->handle);
 	conn->state = BT_CONNECTED;
 	conn->state = BT_CONNECTED;
 
 
+	conn->le_conn_interval = le16_to_cpu(ev->interval);
+	conn->le_conn_latency = le16_to_cpu(ev->latency);
+	conn->le_supv_timeout = le16_to_cpu(ev->supervision_timeout);
+
 	hci_conn_add_sysfs(conn);
 	hci_conn_add_sysfs(conn);
 
 
 	hci_proto_connect_cfm(conn, ev->status);
 	hci_proto_connect_cfm(conn, ev->status);