|
@@ -186,6 +186,7 @@ static void hci_reset_req(struct hci_dev *hdev, unsigned long opt)
|
|
|
BT_DBG("%s %ld", hdev->name, opt);
|
|
|
|
|
|
/* Reset device */
|
|
|
+ set_bit(HCI_RESET, &hdev->flags);
|
|
|
hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
|
|
|
}
|
|
|
|
|
@@ -213,8 +214,10 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
|
|
|
/* Mandatory initialization */
|
|
|
|
|
|
/* Reset */
|
|
|
- if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks))
|
|
|
+ if (!test_bit(HCI_QUIRK_NO_RESET, &hdev->quirks)) {
|
|
|
+ set_bit(HCI_RESET, &hdev->flags);
|
|
|
hci_send_cmd(hdev, HCI_OP_RESET, 0, NULL);
|
|
|
+ }
|
|
|
|
|
|
/* Read Local Supported Features */
|
|
|
hci_send_cmd(hdev, HCI_OP_READ_LOCAL_FEATURES, 0, NULL);
|
|
@@ -1074,6 +1077,7 @@ static void hci_cmd_timer(unsigned long arg)
|
|
|
|
|
|
BT_ERR("%s command tx timeout", hdev->name);
|
|
|
atomic_set(&hdev->cmd_cnt, 1);
|
|
|
+ clear_bit(HCI_RESET, &hdev->flags);
|
|
|
tasklet_schedule(&hdev->cmd_task);
|
|
|
}
|
|
|
|