|
@@ -1043,12 +1043,19 @@ static void set_discoverable_complete(struct hci_dev *hdev, u8 status)
|
|
|
}
|
|
|
|
|
|
cp = cmd->param;
|
|
|
- if (cp->val)
|
|
|
+ if (cp->val) {
|
|
|
changed = !test_and_set_bit(HCI_DISCOVERABLE,
|
|
|
&hdev->dev_flags);
|
|
|
- else
|
|
|
+
|
|
|
+ if (hdev->discov_timeout > 0) {
|
|
|
+ int to = msecs_to_jiffies(hdev->discov_timeout * 1000);
|
|
|
+ queue_delayed_work(hdev->workqueue, &hdev->discov_off,
|
|
|
+ to);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
changed = test_and_clear_bit(HCI_DISCOVERABLE,
|
|
|
&hdev->dev_flags);
|
|
|
+ }
|
|
|
|
|
|
send_settings_rsp(cmd->sk, MGMT_OP_SET_DISCOVERABLE, hdev);
|
|
|
|