static void enable_advertising(struct hci_request *req)
 {
-       u8 adv = 0x01;
+       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(adv), &adv);
+       hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), &enable);
 }
 
 static void disable_advertising(struct hci_request *req)
 {
-       u8 adv = 0x00;
+       u8 enable = 0x00;
 
-       hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(adv), &adv);
+       hci_req_add(req, HCI_OP_LE_SET_ADV_ENABLE, sizeof(enable), &enable);
 }
 
 static void le_enable_complete(struct hci_dev *hdev, u8 status)