Bluetooth: Add opcode to error message
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / net / bluetooth / hci_core.c
index e91bf7e15666420466a5b67e715ea0cb0442bb3e..88858963ec21b4cf4cce14bb2288dbd0129f8a47 100644 (file)
@@ -1366,11 +1366,19 @@ int hci_remove_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr)
 }
 
 /* HCI command timer function */
-static void hci_cmd_timer(unsigned long arg)
+static void hci_cmd_timeout(unsigned long arg)
 {
        struct hci_dev *hdev = (void *) arg;
 
-       BT_ERR("%s command tx timeout", hdev->name);
+       if (hdev->sent_cmd) {
+               struct hci_command_hdr *sent = (void *) hdev->sent_cmd->data;
+               u16 opcode = __le16_to_cpu(sent->opcode);
+
+               BT_ERR("%s command 0x%4.4x tx timeout", hdev->name, opcode);
+       } else {
+               BT_ERR("%s command tx timeout", hdev->name);
+       }
+
        atomic_set(&hdev->cmd_cnt, 1);
        queue_work(hdev->workqueue, &hdev->cmd_work);
 }
@@ -1668,7 +1676,7 @@ struct hci_dev *hci_alloc_dev(void)
 
        init_waitqueue_head(&hdev->req_wait_q);
 
-       setup_timer(&hdev->cmd_timer, hci_cmd_timer, (unsigned long) hdev);
+       setup_timer(&hdev->cmd_timer, hci_cmd_timeout, (unsigned long) hdev);
 
        hci_init_sysfs(hdev);
        discovery_init(hdev);