Re: [BUG] rtw88_8723de: Wi-Fi and Bluetooth fail after warm reboot
Lovekesh Solanki <[email protected]> Thu, 6 Aug 2026 16:18:20 +0530
| Newsgroups | org.kernel.vger.linux-wireless,org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb |
|---|---|
| Message-ID | <anRcsdWWWX7zyfj5@eggarch> |
On Sun, Aug 02, 2026 at 11:40:51PM -0600, Snake Pilot wrote: > Bluetooth: hci0: diag: hci_dev_shtudown: HCI_UP=1 HCI_UNREGISTER=0 > Bluetooth: hci0: diag: calling vendor shutdown callback > Bluetooth: hci0: diag: btrtl_shutdown_realtek: sending HCI_OP_RESET > Bluetooth: hci0: diag: btrtl_shutdown_realtek: HCI_OP_RESET completed OK > Bluetooth: hci0: diag: vendor shutdown returned 0 I'm thinking if reset itself is the problem, since it does not run on unloading manually but it does on shutdown. > I did not find the btusb shutdown or rtw_pci_shutdown/D3hot diagnostic > messages in the persisted previous-boot journal. The journal appears to end > before the final device shutdown stage, so their absence from the journal > does not necessarily mean that the callbacks were not invoked. Yeah it seems it runs after journal is gone. I suppose we should test by skipping HCI_OP_RESET if that improves the issue. Could you apply the attached patch only and start with a cold boot then do a warm reboot and send the previous and current journal just like you did before? Thanks, Lovekesh
skip-hci-reset.patch
(text/plain, 904 B)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 184e95c1625e..e7dd19b20cc8 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3889,6 +3889,12 @@ static int btusb_shutdown_qca(struct hci_dev *hdev)
return 0;
}
+static int btusb_shutdown_rtl8723de(struct hci_dev *hdev)
+{
+ bt_dev_info(hdev, "skipping HCI_OP_RESET......");
+ return 0;
+}
+
static ssize_t force_poll_sync_read(struct file *file, char __user *user_buf,
size_t count, loff_t *ppos)
{
@@ -4338,6 +4344,9 @@ static int btusb_probe(struct usb_interface *intf,
set_bit(BTUSB_USE_ALT3_FOR_WBS, &data->flags);
}
+ if (id->idVendor == 0x0bda && id->idProduct == 0xb009)
+ hdev->shutdown = btusb_shutdown_rtl8723de;
+
if (id->driver_info & BTUSB_ACTIONS_SEMI) {
/* Support is advertised, but not implemented */
hci_set_quirk(hdev, HCI_QUIRK_BROKEN_ERR_DATA_REPORTING);