[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190624062114.20303-1-jian-hong@endlessm.com>
Date: Mon, 24 Jun 2019 14:21:16 +0800
From: Jian-Hong Pan <jian-hong@...lessm.com>
To: Daniel Drake <drake@...lessm.com>,
Johan Hedberg <johan.hedberg@...il.com>,
Marcel Holtmann <marcel@...tmann.org>
Cc: linux-bluetooth@...r.kernel.org, linux-kernel@...r.kernel.org,
Jian-Hong Pan <jian-hong@...lessm.com>
Subject: [PATCH v2] Bluetooth: btrtl: HCI reset on close for Realtek BT chip
Realtek RTL8822BE BT chip on ASUS X420FA cannot be turned on correctly
after on-off several times. Bluetooth daemon sets BT mode failed when
this issue happens.
bluetoothd[1576]: Failed to set mode: Failed (0x03)
If BT is tunred off, then turned on again, it works correctly again.
According to the vendor driver, the HCI_QUIRK_RESET_ON_CLOSE flag is set
during probing. So, this patch makes Realtek's BT reset on close to fix
this issue.
Signed-off-by: Jian-Hong Pan <jian-hong@...lessm.com>
---
v2:
- According to the vendor driver, it makes "all" Realtek's BT reset on
close. So, this version makes it the same.
- Change to the new subject for all Realtek BT chips.
drivers/bluetooth/btrtl.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
index 208feef63de4..be6d5f7e1e44 100644
--- a/drivers/bluetooth/btrtl.c
+++ b/drivers/bluetooth/btrtl.c
@@ -630,6 +630,10 @@ int btrtl_setup_realtek(struct hci_dev *hdev)
return PTR_ERR(btrtl_dev);
ret = btrtl_download_firmware(hdev, btrtl_dev);
+ /* According to the vendor driver, BT must be reset on close to avoid
+ * firmware crash since kernel v3.7.1.
+ */
+ set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);
btrtl_free(btrtl_dev);
--
2.22.0
Powered by blists - more mailing lists