[PATCH] Revert "Bluetooth: btrtl: fix RTL8761B/BU broken LE extended scan"
From: Kamil Serwus
Date: Sun Aug 23 2026 - 06:32:14 EST
This reverts commit 5ead2063611ae56809b1b113ac44cef9547c81d7.
It sets HCI_QUIRK_BROKEN_EXT_SCAN for every CHIP_ID_8761B, which forces
the legacy LE Set Scan Enable command (0x200c). That was validated on one
dongle, USB 0bda:a728, and it breaks others sharing the chip id: on
0bda:8771 (fw 0xdfc6d922) extended scan works fine, but the firmware
stops answering the legacy scan-disable command:
Bluetooth: hci0: command 0x200c tx timeout
Bluetooth: hci0: Unable to disable scanning: -110
Bluetooth: hci0: Resetting usb device.
btusb then resets the controller, it re-enumerates and every connected
BLE device is dropped, which on a machine with a Bluetooth keyboard and
trackball leaves no input at all. v7.1.x drives the same dongle, with the
same firmware, for hours without a single scan error.
This does put 0bda:a728 back to its pre-v7.2 behaviour, where extended
scan logged repeated -EBUSY messages but the controller stayed usable. A
detection-based fix is under discussion on the list, but the culprit has
already reached 7.1.9 and 6.18.45, so the regression is better undone
first.
Fixes: 5ead2063611a ("Bluetooth: btrtl: fix RTL8761B/BU broken LE extended scan")
Cc: stable@xxxxxxxxxxxxxxx
Link: https://lore.kernel.org/linux-bluetooth/20260822141115.58815-1-kserwus@xxxxxxxxx/
Signed-off-by: Kamil Serwus <kserwus@xxxxxxxxx>
---
drivers/bluetooth/btrtl.c | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
index 7f54d2d2d..03fa9409e 100644
--- a/drivers/bluetooth/btrtl.c
+++ b/drivers/bluetooth/btrtl.c
@@ -1343,19 +1343,6 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev)
if (!btrtl_dev->ic_info)
return;
- switch (btrtl_dev->project_id) {
- case CHIP_ID_8761B:
- /* RTL8761B/BU reports HCI version 5.1 but does not support
- * the LE Extended Scan commands (Opcode 0x2042), causing
- * repeated -EBUSY failures when BlueZ attempts extended
- * scanning while a connection is active.
- */
- hci_set_quirk(hdev, HCI_QUIRK_BROKEN_EXT_SCAN);
- break;
- default:
- break;
- }
-
switch (btrtl_dev->ic_info->lmp_subver) {
case RTL_ROM_LMP_8703B:
/* 8723CS reports two pages for local ext features,
base-commit: 8d3ae59288f1e7d58d76558a6ee96d533bc5019f
--
2.55.0