* [PATCH] Bluetooth: btusb: Add QCA Rome support for Surface Laptop 3 AMD (0cf3:e303)
@ 2026-11-12 15:24 Daan Bouwman
2026-11-12 21:23 ` bluez.test.bot
0 siblings, 1 reply; 2+ messages in thread
From: Daan Bouwman @ 2026-11-12 15:24 UTC (permalink / raw)
To: linux-bluetooth
Cc: Daan Bouwman, stable, Marcel Holtmann, Luiz Augusto von Dentz,
linux-kernel
The Microsoft Surface Laptop 3 (AMD edition) uses a Qualcomm Atheros
QCA6174 Bluetooth USB controller with USB ID 0cf3:e303. Without the
BTUSB_QCA_ROME quirk, btusb binds to it as a generic controller and
never loads the QCA rampatch and NVM firmware, leaving the controller in
unpatched ROM mode where BLE connections fail with "unexpected event for
opcode 0x2005" errors.
With the quirk applied, the controller is set up correctly:
Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00000302.bin
Bluetooth: hci0: QCA: patch rome 0x302 build 0x3e8, firmware rome 0x302 build 0x111
Bluetooth: hci0: using NVM file: qca/nvm_usb_00000302.bin
Add 0cf3:e303 with BTUSB_QCA_ROME | BTUSB_WIDEBAND_SPEECH.
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0cf3 ProdID=e303 Rev=00.01
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
Cc: stable@vger.kernel.org
Signed-off-by: Daan Bouwman <daan@daanbouwman.nl>
---
Notes:
The commit message was drafted with Claude (claude-opus-5-5); I reviewed
the change and tested it on my Surface Laptop 3 (AMD).
Tested on v7.2.15 with this same ID entry applied to btusb, after a cold
boot with my out-of-tree workaround disabled:
- stock btusb: no rampatch/NVM loaded, HCI version 7, BLE mouse fails
with "unexpected event for opcode 0x2005"
- patched btusb: rampatch and NVM 0x302 loaded, HCI version 8, BLE mouse
connects and reconnects, no 0x2005 errors
drivers/bluetooth/btusb_main.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/bluetooth/btusb_main.c b/drivers/bluetooth/btusb_main.c
index 95398e2ca..f44b44382 100644
--- a/drivers/bluetooth/btusb_main.c
+++ b/drivers/bluetooth/btusb_main.c
@@ -288,6 +288,8 @@ static const struct usb_device_id quirks_table[] = {
BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x0cf3, 0xe301), .driver_info = BTUSB_QCA_ROME |
BTUSB_WIDEBAND_SPEECH },
+ { USB_DEVICE(0x0cf3, 0xe303), .driver_info = BTUSB_QCA_ROME |
+ BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x0cf3, 0xe360), .driver_info = BTUSB_QCA_ROME |
BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x0cf3, 0xe500), .driver_info = BTUSB_QCA_ROME |
--
2.56.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* RE: Bluetooth: btusb: Add QCA Rome support for Surface Laptop 3 AMD (0cf3:e303)
2026-11-12 15:24 [PATCH] Bluetooth: btusb: Add QCA Rome support for Surface Laptop 3 AMD (0cf3:e303) Daan Bouwman
@ 2026-11-12 21:23 ` bluez.test.bot
0 siblings, 0 replies; 2+ messages in thread
From: bluez.test.bot @ 2026-11-12 21:23 UTC (permalink / raw)
To: linux-bluetooth, daan
[-- Attachment #1: Type: text/plain, Size: 2259 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/series/1209701/
---Test result---
Test Summary:
CheckPatch FAIL 0.60 seconds
VerifyFixes PASS 0.07 seconds
VerifySignedoff PASS 0.07 seconds
GitLint FAIL 0.24 seconds
SubjectPrefix PASS 0.07 seconds
BuildKernel PASS 31.33 seconds
CheckAllWarning PASS 35.12 seconds
CheckSparse PASS 38.20 seconds
BuildKernel32 PASS 31.14 seconds
CheckKernelLLVM PASS 34.71 seconds
TestRunnerSetup PASS 753.00 seconds
IncrementalBuild PASS 30.11 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
Bluetooth: btusb: Add QCA Rome support for Surface Laptop 3 AMD (0cf3:e303)
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#158:
Bluetooth: hci0: QCA: patch rome 0x302 build 0x3e8, firmware rome 0x302 build 0x111
WARNING: The commit message has 'stable@', perhaps it also needs a 'Fixes:' tag?
total: 0 errors, 2 warnings, 8 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
/home/runner/work/bluetooth-next/bluetooth-next/src/patch/14976888.patch has style problems, please review.
NOTE: Ignored message types: UNKNOWN_COMMIT_ID
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
##############################
Test: GitLint - FAIL
Desc: Run gitlint
Output:
Bluetooth: btusb: Add QCA Rome support for Surface Laptop 3 AMD (0cf3:e303)
13: B1 Line exceeds max length (85>80): " Bluetooth: hci0: QCA: patch rome 0x302 build 0x3e8, firmware rome 0x302 build 0x111"
37: B2 Line has trailing whitespace: " "
https://github.com/bluez/bluetooth-next/pull/1123
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-12 21:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 15:24 [PATCH] Bluetooth: btusb: Add QCA Rome support for Surface Laptop 3 AMD (0cf3:e303) Daan Bouwman
2026-11-12 21:23 ` bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox