Bluetooth: Add stop LE auto connection feature
authorSudha Bheemanna <b.sudha@samsung.com>
Thu, 25 Aug 2016 06:11:34 +0000 (11:41 +0530)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 14 Dec 2016 04:53:08 +0000 (13:53 +0900)
Added new MGMT command to disable LE auto connection.

Change-Id: I1f5f61b83227501ad54019008b405fd47fd722a3
Signed-off-by: Sudha Bheemanna <b.sudha@samsung.com>
include/net/bluetooth/mgmt_tizen.h
net/bluetooth/mgmt.c

index 844af75..fab5beb 100644 (file)
@@ -118,6 +118,11 @@ struct mgmt_cp_stop_le_discovery {
 #define MGMT_STOP_LE_DISCOVERY_SIZE            1
 /* le discovery */
 
+/* For LE auto connection */
+#define MGMT_OP_DISABLE_LE_AUTO_CONNECT                (TIZEN_OP_CODE_BASE + 0x0c)
+#define MGMT_DISABLE_LE_AUTO_CONNECT_SIZE      0
+/* LE auto connection */
+
 /* EVENTS */
 
 /* For device name update changes */
index 230c7b8..ce93c59 100644 (file)
@@ -6898,6 +6898,24 @@ void mgmt_le_discovering(struct hci_dev *hdev, u8 discovering)
 
        mgmt_event(MGMT_EV_DISCOVERING, hdev, &ev, sizeof(ev), NULL);
 }
+
+static int disable_le_auto_connect(struct sock *sk, struct hci_dev *hdev,
+                       void *data, u16 len)
+{
+       int err;
+
+       BT_DBG("%s", hdev->name);
+
+       hci_dev_lock(hdev);
+
+       err = hci_send_cmd(hdev, HCI_OP_LE_CREATE_CONN_CANCEL, 0, NULL);
+       if (err < 0)
+               BT_ERR("HCI_OP_LE_CREATE_CONN_CANCEL is failed");
+
+       hci_dev_unlock(hdev);
+
+       return err;
+}
 #endif /* TIZEN_BT */
 
 static bool ltk_is_valid(struct mgmt_ltk_info *key)
@@ -8711,6 +8729,7 @@ static const struct hci_mgmt_handler tizen_mgmt_handlers[] = {
        { set_disable_threshold,   MGMT_SET_RSSI_DISABLE_SIZE },
        { start_le_discovery,      MGMT_START_LE_DISCOVERY_SIZE },
        { stop_le_discovery,       MGMT_STOP_LE_DISCOVERY_SIZE },
+       { disable_le_auto_connect, MGMT_DISABLE_LE_AUTO_CONNECT_SIZE },
 };
 #endif