Linux bluetooth development
 help / color / mirror / Atom feed
* [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