Pārlūkot izejas kodu

Bluetooth: Fix enabling Authenticated Payload Timeout Expired event

The Authenticated Payload Timeout Expired event is valid for
controllers with BR/EDR Secure Connections support, but also for
LE only controllers supporting LE Ping feature. When either of them
is available enable this event. Previous it was not enabled when
the controller was only supporting LE operation.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Marcel Holtmann 11 gadi atpakaļ
vecāks
revīzija
cd7ca0ec5e
2 mainītis faili ar 2 papildinājumiem un 1 dzēšanām
  1. 1 0
      include/net/bluetooth/hci.h
  2. 1 1
      net/bluetooth/hci_core.c

+ 1 - 0
include/net/bluetooth/hci.h

@@ -357,6 +357,7 @@ enum {
 
 
 /* LE features */
 /* LE features */
 #define HCI_LE_CONN_PARAM_REQ_PROC	0x02
 #define HCI_LE_CONN_PARAM_REQ_PROC	0x02
+#define HCI_LE_PING			0x10
 
 
 /* Connection modes */
 /* Connection modes */
 #define HCI_CM_ACTIVE	0x0000
 #define HCI_CM_ACTIVE	0x0000

+ 1 - 1
net/bluetooth/hci_core.c

@@ -1569,7 +1569,7 @@ static void hci_set_event_mask_page_2(struct hci_request *req)
 	}
 	}
 
 
 	/* Enable Authenticated Payload Timeout Expired event if supported */
 	/* Enable Authenticated Payload Timeout Expired event if supported */
-	if (lmp_ping_capable(hdev))
+	if (lmp_ping_capable(hdev) || hdev->le_features[0] & HCI_LE_PING)
 		events[2] |= 0x80;
 		events[2] |= 0x80;
 
 
 	hci_req_add(req, HCI_OP_SET_EVENT_MASK_PAGE_2, sizeof(events), events);
 	hci_req_add(req, HCI_OP_SET_EVENT_MASK_PAGE_2, sizeof(events), events);