aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_conn.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-07-14 14:13:49 -0400
committerMarcel Holtmann <marcel@holtmann.org>2008-07-14 14:13:49 -0400
commit769be974d0c7b4fe1a52f9cdaad22259b60953f7 (patch)
treeb07af753550c892beb7223d474298806cbf919d5 /net/bluetooth/hci_conn.c
parenta8bd28baf21b9ee6b8486666b771283e566c0d31 (diff)
[Bluetooth] Use ACL config stage to retrieve remote features
The Bluetooth technology introduces new features on a regular basis and for some of them it is important that the hardware on both sides support them. For features like Simple Pairing it is important that the host stacks on both sides have switched this feature on. To make valid decisions, a config stage during ACL link establishment has been introduced that retrieves remote features and if needed also the remote extended features (known as remote host features) before signalling this link as connected. This change introduces full reference counting of incoming and outgoing ACL links and the Bluetooth core will disconnect both if no owner of it is present. To better handle interoperability during the pairing phase the disconnect timeout for incoming connections has been increased to 10 seconds. This is five times more than for outgoing connections. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/hci_conn.c')
-rw-r--r--net/bluetooth/hci_conn.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 41351ba692e9..6f22533e7656 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -170,11 +170,13 @@ static void hci_conn_timeout(unsigned long arg)
170 170
171 switch (conn->state) { 171 switch (conn->state) {
172 case BT_CONNECT: 172 case BT_CONNECT:
173 case BT_CONNECT2:
173 if (conn->type == ACL_LINK) 174 if (conn->type == ACL_LINK)
174 hci_acl_connect_cancel(conn); 175 hci_acl_connect_cancel(conn);
175 else 176 else
176 hci_acl_disconn(conn, 0x13); 177 hci_acl_disconn(conn, 0x13);
177 break; 178 break;
179 case BT_CONFIG:
178 case BT_CONNECTED: 180 case BT_CONNECTED:
179 hci_acl_disconn(conn, 0x13); 181 hci_acl_disconn(conn, 0x13);
180 break; 182 break;