OSDN Git Service

Bluetooth: Enable LE Enhanced Connection Complete event.
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 9 Apr 2020 06:05:49 +0000 (08:05 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Wed, 15 Apr 2020 13:51:05 +0000 (16:51 +0300)
In case LL Privacy is supported by the controller, it is also a good
idea to use the LE Enhanced Connection Complete event for getting all
information about the new connection and its addresses.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
include/net/bluetooth/hci.h
net/bluetooth/hci_core.c

index ff42d05..1da8cec 100644 (file)
@@ -460,6 +460,7 @@ enum {
 #define HCI_LE_SLAVE_FEATURES          0x08
 #define HCI_LE_PING                    0x10
 #define HCI_LE_DATA_LEN_EXT            0x20
+#define HCI_LE_LL_PRIVACY              0x40
 #define HCI_LE_EXT_SCAN_POLICY         0x80
 #define HCI_LE_PHY_2M                  0x01
 #define HCI_LE_PHY_CODED               0x08
index 589c408..0d726d5 100644 (file)
@@ -638,6 +638,14 @@ static int hci_init3_req(struct hci_request *req, unsigned long opt)
                if (hdev->le_features[0] & HCI_LE_DATA_LEN_EXT)
                        events[0] |= 0x40;      /* LE Data Length Change */
 
+               /* If the controller supports LL Privacy feature, enable
+                * the corresponding event.
+                */
+               if (hdev->le_features[0] & HCI_LE_LL_PRIVACY)
+                       events[1] |= 0x02;      /* LE Enhanced Connection
+                                                * Complete
+                                                */
+
                /* If the controller supports Extended Scanner Filter
                 * Policies, enable the correspondig event.
                 */