|
@@ -1072,6 +1072,34 @@ static void write_fast_connectable(struct hci_request *req, bool enable)
|
|
|
hci_req_add(req, HCI_OP_WRITE_PAGE_SCAN_TYPE, 1, &type);
|
|
|
}
|
|
|
|
|
|
+static void enable_advertising(struct hci_request *req)
|
|
|
+{
|
|
|
+ struct hci_dev *hdev = req->hdev;
|
|
|
+ struct hci_cp_le_set_adv_param cp;
|
|
|
+ u8 enable = 0x01;
|
|
|
+
|
|
|
+ memset(&cp, 0, sizeof(cp));
|
|
|
+ cp.min_interval = __constant_cpu_to_le16(0x0800);
|
|
|
+ cp.max_interval = __constant_cpu_to_le16(0x0800);
|
|
|
+ cp.type = LE_ADV_IND;
|
|
|
+ if (bacmp(&hdev->bdaddr, BDADDR_ANY))
|
|
|
+ cp.own_address_type = ADDR_LE_DEV_PUBLIC;
|
|
|
+ else
|
|
|
+ cp.own_address_type = ADDR_LE_DEV_RANDOM;
|
|
|
+ cp.channel_map = 0x07;
|
|
|
+
|
|
|
+ hci_req_add(req, HCI_OP_LE_SET_ADV_PARAM, sizeof(cp), &cp);
|
|
|
+
|
|
|
+ hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), &enable);
|
|
|
+}
|
|
|
+
|
|
|
+static void disable_advertising(struct hci_request *req)
|
|
|
+{
|
|
|
+ u8 enable = 0x00;
|
|
|
+
|
|
|
+ hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), &enable);
|
|
|
+}
|
|
|
+
|
|
|
static void set_connectable_complete(struct hci_dev *hdev, u8 status)
|
|
|
{
|
|
|
struct pending_cmd *cmd;
|
|
@@ -1440,34 +1468,6 @@ unlock:
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
-static void enable_advertising(struct hci_request *req)
|
|
|
-{
|
|
|
- struct hci_dev *hdev = req->hdev;
|
|
|
- struct hci_cp_le_set_adv_param cp;
|
|
|
- u8 enable = 0x01;
|
|
|
-
|
|
|
- memset(&cp, 0, sizeof(cp));
|
|
|
- cp.min_interval = __constant_cpu_to_le16(0x0800);
|
|
|
- cp.max_interval = __constant_cpu_to_le16(0x0800);
|
|
|
- cp.type = LE_ADV_IND;
|
|
|
- if (bacmp(&hdev->bdaddr, BDADDR_ANY))
|
|
|
- cp.own_address_type = ADDR_LE_DEV_PUBLIC;
|
|
|
- else
|
|
|
- cp.own_address_type = ADDR_LE_DEV_RANDOM;
|
|
|
- cp.channel_map = 0x07;
|
|
|
-
|
|
|
- hci_req_add(req, HCI_OP_LE_SET_ADV_PARAM, sizeof(cp), &cp);
|
|
|
-
|
|
|
- hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), &enable);
|
|
|
-}
|
|
|
-
|
|
|
-static void disable_advertising(struct hci_request *req)
|
|
|
-{
|
|
|
- u8 enable = 0x00;
|
|
|
-
|
|
|
- hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), &enable);
|
|
|
-}
|
|
|
-
|
|
|
static void le_enable_complete(struct hci_dev *hdev, u8 status)
|
|
|
{
|
|
|
struct cmd_lookup match = { NULL, hdev };
|