[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240412084128.24452-1-hao.qin@mediatek.com>
Date: Fri, 12 Apr 2024 16:41:28 +0800
From: Hao Qin <hao.qin@...iatek.com>
To: Marcel Holtmann <marcel@...tmann.org>, Johan Hedberg
<johan.hedberg@...il.com>, Luiz Von Dentz <luiz.dentz@...il.com>
CC: Sean Wang <sean.wang@...iatek.com>, Deren Wu <deren.Wu@...iatek.com>,
Aaron Hou <aaron.hou@...iatek.com>, Chris Lu <chris.lu@...iatek.com>, "Steve
Lee" <steve.lee@...iatek.com>, linux-bluetooth
<linux-bluetooth@...r.kernel.org>, linux-kernel
<linux-kernel@...r.kernel.org>, linux-mediatek
<linux-mediatek@...ts.infradead.org>, Hao Qin <hao.qin@...iatek.com>
Subject: [PATCH] Bluetooth: btusb: mediatek: Add usb reset for firmware setup failure
Add usb reset to recover BT device from a firmware setup failure,
it will restore the device to its original state and attempt setup
firmware again.
Signed-off-by: Hao Qin <hao.qin@...iatek.com>
---
drivers/bluetooth/btusb.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 4c0cc13adb47..c5aab361795e 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3160,6 +3160,9 @@ static int btusb_mtk_setup(struct hci_dev *hdev)
btusb_mtk_hci_wmt_sync);
if (err < 0) {
bt_dev_err(hdev, "Failed to set up firmware (%d)", err);
+ btusb_stop_traffic(data);
+ usb_kill_anchored_urbs(&data->tx_anchor);
+ usb_queue_reset_device(data->intf);
return err;
}
--
2.18.0
Powered by blists - more mailing lists