Bluetooth: Enable RPA Timeout
authorSathish Narasimman <nsathish41@gmail.com>
Thu, 23 Jul 2020 12:39:02 +0000 (18:09 +0530)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 30 Jul 2020 07:34:43 +0000 (09:34 +0200)
Enable RPA timeout during bluetooth initialization.
The RPA timeout value is used from hdev, which initialized from
debug_fs

Signed-off-by: Sathish Narasimman <sathish.narasimman@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/bluetooth/hci.h
net/bluetooth/hci_core.c

index c36dccd..dd82cce 100644 (file)
@@ -1648,6 +1648,8 @@ struct hci_rp_le_read_resolv_list_size {
 
 #define HCI_OP_LE_SET_ADDR_RESOLV_ENABLE 0x202d
 
+#define HCI_OP_LE_SET_RPA_TIMEOUT      0x202e
+
 #define HCI_OP_LE_READ_MAX_DATA_LEN    0x202f
 struct hci_rp_le_read_max_data_len {
        __u8    status;
index 3f89bd6..68bfe57 100644 (file)
@@ -763,6 +763,14 @@ static int hci_init3_req(struct hci_request *req, unsigned long opt)
                        hci_req_add(req, HCI_OP_LE_CLEAR_RESOLV_LIST, 0, NULL);
                }
 
+               if (hdev->commands[35] & 0x40) {
+                       __le16 rpa_timeout = cpu_to_le16(hdev->rpa_timeout);
+
+                       /* Set RPA timeout */
+                       hci_req_add(req, HCI_OP_LE_SET_RPA_TIMEOUT, 2,
+                                   &rpa_timeout);
+               }
+
                if (hdev->le_features[0] & HCI_LE_DATA_LEN_EXT) {
                        /* Read LE Maximum Data Length */
                        hci_req_add(req, HCI_OP_LE_READ_MAX_DATA_LEN, 0, NULL);