FAILED: patch "[PATCH] Bluetooth: Properly disable remote wakeup for MT7922/MT7925" failed to apply to 6.18-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.18-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.18.y
git checkout FETCH_HEAD
git cherry-pick -x dcaf83ead130d3067862599089b0999b3da140a4
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026091600-energetic-defacing-c53a@gregkh' --subject-prefix 'PATCH 6.18.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From dcaf83ead130d3067862599089b0999b3da140a4 Mon Sep 17 00:00:00 2001
From: Rong Zhang <[email protected]>
Date: Wed, 2 Sep 2026 02:19:18 +0800
Subject: [PATCH] Bluetooth: Properly disable remote wakeup for MT7922/MT7925
on Ryzen platform
It is reported that a remote wakeup could cause MT7922/MT7925's btusb interface completely unresponsive. Resetting the xHCI root hub doesn't help at all, and recovering from such a state needs a power cycle.
All reports seen to be relevant to Ryzen-based laptops. These NICs are usually used as OEM components thanks to some sort of reference designs. Their popularity on other platforms is unclear. While there is still a chance that the quirk may exist on other platforms, be cautious and only apply the quirk to direct children of Ryzen platforms's root hubs for the time being. In most cases the root hub is on the SoC or PCH, which needs the quirk. Unfortunately, this can't distinguish root hubs on PCIe add-in cards. Such roughness should be acceptable, as PCIe USB controller add-in cards are less commonly used nowadays. On the other hand, applying the quirk doesn't hurt any functionalities either, as the device can still be used as a wakeup source if desired. Theoretically, we could retrieve the root hub's PCI vendor ID with some hierarchy magic, but that's too intrusive...
Meanwhile, though device_set_wakeup_capable(false) is the correct fix for other NICs with fake remote wakeup capabilities, doing so for MT7922/MT7925 effectively prevents it from being used as wakeup sources as per userspace requests. Hence, return -EBUSY on runtime suspend to prevent the interface from being autosuspended while it's still opened, which has the same effect as device_set_wakeup_capable(false), since disabling remote wakeup simply causes the USB core to gate runtime autosuspend as well due to needs_remote_wakeup == 1. The interface can be safely autosuspended as long as remote wakeup is disabled, i.e., after closing the HCI device.
Specifically, the interface may still take the advantage of remote wakeup in order to wake up the system from sleep if userspace has enabled it as a wakeup source.
drivers/bluetooth/btmtk.c +0 -10
@@ -1374,16 +1374,6 @@ int btmtk_usb_setup(struct hci_dev *hdev)break ;case 0x7922 :case 0x7925 : -/* -* A remote wakeup could cause the device completely unresponsive, and -* recovering from such a state needs a power cycle. -* -* Since the remote wakeup capability is super broken, just disable it -* to get rid of the troubles. The device can still be autosuspended -* when the bluetooth interface is closed. -*/ -device_set_wakeup_capable (&btmtk_data->udev->dev, false); - fallthrough;case 0x7961 :case 0x7902 :case 0x6639 :
drivers/bluetooth/btusb.c +69 -4
109 lines not on this page · raw message