]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Bluetooth: Enable basics for LE Data Length Extension feature
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 20 Dec 2014 15:28:39 +0000 (16:28 +0100)
committerJohan Hedberg <johan.hedberg@intel.com>
Sat, 20 Dec 2014 15:52:01 +0000 (17:52 +0200)
When the controller supports the new LE Data Length Extension feature
from Bluetooth 4.2 specification, enable the new events and read the
values for default and maxmimum data length supported by the controller.

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

index 2db071b2f0f4a4301b3af5f545603e34aa1318be..01e35ef6d2014f707ca706e4bdf8c06089cfd5d5 100644 (file)
@@ -805,6 +805,12 @@ static void hci_init3_req(struct hci_request *req, unsigned long opt)
                                                 * Parameter Request
                                                 */
 
+               /* If the controller supports the Data Length Extension
+                * feature, enable the corresponding event.
+                */
+               if (hdev->le_features[0] & HCI_LE_DATA_LEN_EXT)
+                       events[0] |= 0x40;      /* LE Data Length Change */
+
                /* If the controller supports Extended Scanner Filter
                 * Policies, enable the correspondig event.
                 */
@@ -835,6 +841,14 @@ static void hci_init3_req(struct hci_request *req, unsigned long opt)
                        hci_req_add(req, HCI_OP_LE_READ_ADV_TX_POWER, 0, NULL);
                }
 
+               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);
+
+                       /* Read LE Suggested Default Data Length */
+                       hci_req_add(req, HCI_OP_LE_READ_DEF_DATA_LEN, 0, NULL);
+               }
+
                hci_set_le_support(req);
        }