This patch sets the filter policy to a default value 0x01 during
LE auto connection if the destination address is not set. And it
updates the destination address once the LE connection complete
event is recieved during LE auto connection. And for it checks
valid destination address before cancelling LE connection when
connection timeout occurs.
Change-Id: I9877556c0b0ab4826f5f4934ead4d85b7837036d
Signed-off-by: Sudha Bheemanna <b.sudha@samsung.com>
[squash patches, LE connection policy, set dest address and check dest address before cancelling connection]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Amit Purwar <amit.purwar@samsung.com>
cp.scan_interval = cpu_to_le16(hdev->le_scan_int_connect);
cp.scan_window = cpu_to_le16(hdev->le_scan_window_connect);
+#ifdef TIZEN_BT
+ /* LE auto connect */
+ if (!bacmp(&conn->dst, BDADDR_ANY))
+ cp.filter_policy = 0x1;
+ else
bacpy(&cp.peer_addr, &conn->dst);
+#else
+ bacpy(&cp.peer_addr, &conn->dst);
+#endif
cp.peer_addr_type = conn->dst_type;
cp.own_address_type = own_addr_type;
cp.conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
}
}
} else {
+#ifdef TIZEN_BT
+ /* LE auto connect */
+ bacpy(&conn->dst, bdaddr);
+#endif
cancel_delayed_work(&conn->le_conn_timeout);
}
break;
case BT_CONNECT:
+#ifdef TIZEN_BT
+ if (conn->type == LE_LINK && bacmp(&conn->dst, BDADDR_ANY)) {
+#else
if (conn->type == LE_LINK) {
+#endif
if (test_bit(HCI_CONN_SCANNING, &conn->flags))
break;
hci_req_add(req, HCI_OP_LE_CREATE_CONN_CANCEL,