Commit e2bef384 authored by Rajat Jain's avatar Rajat Jain Committed by Marcel Holtmann

Bluetooth: Allow driver specific cmd timeout handling

Add a hook to allow the BT driver to do device or command specific
handling in case of timeouts. This is to be used by Intel driver to
reset the device after certain number of timeouts.
Signed-off-by: default avatarRajat Jain <rajatja@google.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent b4dfbbd1
...@@ -437,6 +437,7 @@ struct hci_dev { ...@@ -437,6 +437,7 @@ struct hci_dev {
int (*post_init)(struct hci_dev *hdev); int (*post_init)(struct hci_dev *hdev);
int (*set_diag)(struct hci_dev *hdev, bool enable); int (*set_diag)(struct hci_dev *hdev, bool enable);
int (*set_bdaddr)(struct hci_dev *hdev, const bdaddr_t *bdaddr); int (*set_bdaddr)(struct hci_dev *hdev, const bdaddr_t *bdaddr);
void (*cmd_timeout)(struct hci_dev *hdev);
}; };
#define HCI_PHY_HANDLE(handle) (handle & 0xff) #define HCI_PHY_HANDLE(handle) (handle & 0xff)
......
...@@ -2578,6 +2578,9 @@ static void hci_cmd_timeout(struct work_struct *work) ...@@ -2578,6 +2578,9 @@ static void hci_cmd_timeout(struct work_struct *work)
bt_dev_err(hdev, "command tx timeout"); bt_dev_err(hdev, "command tx timeout");
} }
if (hdev->cmd_timeout)
hdev->cmd_timeout(hdev);
atomic_set(&hdev->cmd_cnt, 1); atomic_set(&hdev->cmd_cnt, 1);
queue_work(hdev->workqueue, &hdev->cmd_work); queue_work(hdev->workqueue, &hdev->cmd_work);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment