From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Dylan Eray <dylan.eray6@gmail.com>,
Paul Menzel <pmenzel@molgen.mpg.de>,
Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,
Sasha Levin <sashal@kernel.org>,
marcel@holtmann.org, luiz.dentz@gmail.com,
linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 7.0-6.12] Bluetooth: btusb: Add Lite-On 04ca:3807 for MediaTek MT7921
Date: Mon, 20 Apr 2026 09:17:32 -0400 [thread overview]
Message-ID: <20260420132314.1023554-58-sashal@kernel.org> (raw)
In-Reply-To: <20260420132314.1023554-1-sashal@kernel.org>
From: Dylan Eray <dylan.eray6@gmail.com>
[ Upstream commit 67377cd38b89ce782ccdb83bda3f65a2def843cd ]
Add USB device ID (04ca:3807) for a Lite-On Wireless_Device containing
a MediaTek MT7921 (MT7920) Bluetooth chipset found in Acer laptops.
Without this entry, btusb binds via the generic USB class-based wildcard
match but never sets the BTUSB_MEDIATEK flag. This means btmtk never
triggers firmware loading, and the driver sends a raw HCI Reset that
the uninitialized chip cannot respond to, resulting in:
Bluetooth: hci0: Opcode 0x0c03 failed: -110
The information in /sys/kernel/debug/usb/devices about the Bluetooth
device is listed as the below:
T: Bus=03 Lev=01 Prnt=01 Port=09 Cnt=01 Dev#=5 Spd=480 MxCh=0
P: Vendor=04ca ProdID=3807 Rev=1.00
S: Manufacturer=MediaTek Inc.
S: Product=Wireless_Device
S: SerialNumber=000000000
C: #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Dylan Eray <dylan.eray6@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
Now I have all the information needed for a complete analysis. Let me
compile the findings.
---
## PHASE 1: COMMIT MESSAGE FORENSICS
**Step 1.1: Subject Line**
- Subsystem: `Bluetooth: btusb:`
- Action verb: "Add" (adding a USB device ID)
- Summary: Adding USB device ID 04ca:3807 for Lite-On/MediaTek MT7921
Bluetooth adapter
Record: [Bluetooth: btusb] [Add] [New USB device ID for existing
MediaTek BT chipset]
**Step 1.2: Tags**
- Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> (confirmed from
mailing list review)
- Signed-off-by: Dylan Eray <dylan.eray6@gmail.com> (author)
- Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
(Bluetooth maintainer)
- No Fixes: tag, no Cc: stable — expected for the commits under review
Record: Reviewed by Paul Menzel, applied by Bluetooth subsystem
maintainer Luiz Augusto von Dentz.
**Step 1.3: Commit Body**
The commit describes a clear, concrete bug: without this device ID
entry, btusb binds via the generic USB class wildcard but never sets
`BTUSB_MEDIATEK`, preventing firmware loading. The chip receives a raw
HCI Reset it cannot handle, producing:
`Bluetooth: hci0: Opcode 0x0c03 failed: -110`
This means Bluetooth is completely non-functional on Acer laptops with
this Lite-On adapter.
Record: [Bug: Bluetooth completely broken on affected Acer laptops]
[Symptom: HCI Reset fails with -110 timeout] [Root cause: missing
device-specific flag prevents firmware loading]
**Step 1.4: Hidden Bug Fix Detection**
This is not disguised — it's a straightforward device ID addition that
fixes a real hardware enablement issue.
## PHASE 2: DIFF ANALYSIS
**Step 2.1: Inventory**
- 1 file changed: `drivers/bluetooth/btusb.c`
- +2 lines added, 0 lines removed
- Only change is adding a new entry to the `quirks_table[]` array
Record: [1 file, +2 lines] [quirks_table[] in btusb.c] [Trivial single-
table addition]
**Step 2.2: Code Flow Change**
Before: Device 04ca:3807 matches the generic USB class wildcard, btusb
loads without `BTUSB_MEDIATEK` flag, firmware not loaded, chip cannot
respond to HCI commands.
After: Device 04ca:3807 matches the specific USB_DEVICE entry with
`BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH` flags, btmtk firmware loading
is triggered, Bluetooth works.
**Step 2.3: Bug Mechanism**
Category: Hardware workaround / Device ID addition. The format is
identical to dozens of surrounding entries in the same table.
**Step 2.4: Fix Quality**
The fix is a 2-line addition to a static table, following the exact same
pattern as all neighboring entries (e.g., 04ca:3804, 04ca:38e4).
Obviously correct. Zero regression risk — only affects the specific USB
VID/PID.
## PHASE 3: GIT HISTORY INVESTIGATION
**Step 3.1: Blame**
The neighboring entry `04ca:3804` was added in commit 59be4be82bd363
"Bluetooth: btusb: Add new VID/PID 04ca/3804 for MT7922" by Chris Lu
(2023-07-07). The MediaTek device ID section has been present and
actively extended since at least 2023.
**Step 3.2: Fixes tag** — No Fixes: tag (expected). Not applicable.
**Step 3.3: File History**
Recent btusb.c changes show a pattern of frequent device ID additions,
which are standard for this file. The device ID 04ca:3807 is confirmed
NOT yet in the 7.0 tree.
**Step 3.4: Author**
Dylan Eray appears to be an external contributor (Acer laptop user who
encountered the bug). The patch was reviewed and applied by the
Bluetooth subsystem maintainer Luiz Augusto von Dentz.
**Step 3.5: Dependencies**
None. This is a standalone 2-line addition to a static array. The
MediaTek MT7921/MT7922 support infrastructure (`btmtk.c`, `btmtk.h`,
`BTUSB_MEDIATEK` flag) has been present in the kernel since well before
v6.1.
## PHASE 4: MAILING LIST RESEARCH
**Step 4.1: Original Patch Discussion**
Found via web search. The patch went through v1 -> v2. The v1 was
submitted 2026-02-19 and reviewer Paul Menzel suggested adding USB
device info output to the commit message. The v2 incorporated that
feedback and received Paul Menzel's Reviewed-by. It was applied to
bluetooth/bluetooth-next as commit 79e029818394.
**Step 4.2: Reviewers**
- Paul Menzel (reviewer) — confirmed reviewed the diff and said "The
diff looks good."
- Luiz Augusto von Dentz (Bluetooth maintainer) — applied the patch
- Sean Wang (MediaTek) was CC'd on the submission
**Step 4.3: Bug Report**
The author IS the bug reporter — they discovered the issue on their Acer
laptop. No syzbot or bugzilla, but a clear real-world user who can't use
Bluetooth.
**Step 4.4-4.5: Related Patches / Stable Discussion**
No explicit stable nomination found. This is typical for device ID
additions that are manually selected.
## PHASE 5: CODE SEMANTIC ANALYSIS
**Step 5.1-5.4:** The change only affects the `quirks_table[]` static
initializer in btusb.c. It adds a new USB device match entry. When USB
enumeration encounters this VID/PID, it will now set `BTUSB_MEDIATEK |
BTUSB_WIDEBAND_SPEECH` flags, causing the btmtk firmware loading path to
be used. The MT7921 support code is confirmed present in `btmtk.c`,
`btmtk.h`.
**Step 5.5:** There are ~70 existing `BTUSB_MEDIATEK` entries in this
file. This follows an identical pattern.
## PHASE 6: STABLE TREE ANALYSIS
**Step 6.1:** The MediaTek Bluetooth support (BTUSB_MEDIATEK, btmtk
firmware loading) exists in all active stable trees. The
`quirks_table[]` structure exists in all versions. The neighboring entry
04ca:3804 was added in 2023 and is in older stable trees.
**Step 6.2:** The patch will apply cleanly or with trivial context
adjustment. The table area may have slightly different surrounding
entries in older stable trees, but the insertion point (between
04ca:3804 and 04ca:38e4) should be present.
**Step 6.3:** No related fix already in stable for this specific device
ID.
## PHASE 7: SUBSYSTEM AND MAINTAINER CONTEXT
**Step 7.1:** Bluetooth is an IMPORTANT subsystem — widely used on
laptops, IoT, and mobile devices. btusb.c is the primary USB Bluetooth
driver.
**Step 7.2:** btusb.c is actively maintained with frequent device ID
additions.
## PHASE 8: IMPACT AND RISK ASSESSMENT
**Step 8.1:** Affected: Users of Acer laptops with the Lite-On 04ca:3807
Bluetooth adapter.
**Step 8.2:** Trigger: Every boot. Bluetooth is completely non-
functional without this fix.
**Step 8.3:** Severity: HIGH — complete loss of Bluetooth functionality
on affected hardware. Not a crash, but total feature loss.
**Step 8.4:**
- **Benefit:** HIGH — makes Bluetooth work on Acer laptops with this
chipset
- **Risk:** VERY LOW — 2-line addition to a static table, only affects
devices with this specific VID/PID. Zero chance of regression to
existing devices.
## PHASE 9: FINAL SYNTHESIS
**Evidence FOR:**
- Classic device ID addition — explicitly listed as an exception that is
"almost always YES" for stable
- 2-line change, zero regression risk
- Fixes complete Bluetooth failure on real hardware (Acer laptops)
- Reviewed by Paul Menzel, applied by Bluetooth maintainer
- MediaTek MT7921 support infrastructure exists in all active stable
trees
- Follows identical pattern of dozens of existing entries
- Standalone — no dependencies whatsoever
**Evidence AGAINST:**
- None
**Stable Rules Checklist:**
1. Obviously correct? YES — identical to surrounding entries
2. Fixes a real bug? YES — Bluetooth completely broken without it
3. Important issue? YES — total hardware feature loss
4. Small and contained? YES — 2 lines in 1 file
5. No new features/APIs? CORRECT — just a device ID to an existing
driver
6. Can apply to stable? YES — clean apply expected
**Exception Category:** This is a USB device ID addition to an existing
driver — an explicitly recognized exception for stable backporting.
## Verification
- [Phase 1] Parsed tags: Reviewed-by Paul Menzel, SOB by author and
maintainer
- [Phase 2] Diff analysis: 2-line addition to `quirks_table[]`, adds
`USB_DEVICE(0x04ca, 0x3807)` with `BTUSB_MEDIATEK |
BTUSB_WIDEBAND_SPEECH`
- [Phase 3] git blame: neighboring 04ca:3804 added in commit
59be4be82bd363 (2023-07-07), MediaTek support long-standing
- [Phase 3] grep confirmed 04ca:3807 NOT yet in the 7.0 tree
- [Phase 3] Confirmed MT7921/MT7922 firmware support present in btmtk.h
and btmtk.c
- [Phase 4] Found v1 and v2 submissions on spinics.net mirror; v1
reviewed by Paul Menzel who requested USB device info, v2 incorporated
feedback
- [Phase 4] Patch applied to bluetooth-next as commit 79e029818394 by
Luiz Augusto von Dentz
- [Phase 5] BTUSB_MEDIATEK appears ~70 times in btusb.c — this is a
well-established pattern
- [Phase 6] MediaTek support infrastructure confirmed present in all
stable trees
- [Phase 8] Impact: Bluetooth completely non-functional without this fix
on affected Acer laptops
**YES**
drivers/bluetooth/btusb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index aeba026bdb427..d07db8e3a79d5 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -707,6 +707,8 @@ static const struct usb_device_id quirks_table[] = {
BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x04ca, 0x3804), .driver_info = BTUSB_MEDIATEK |
BTUSB_WIDEBAND_SPEECH },
+ { USB_DEVICE(0x04ca, 0x3807), .driver_info = BTUSB_MEDIATEK |
+ BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x04ca, 0x38e4), .driver_info = BTUSB_MEDIATEK |
BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x13d3, 0x3568), .driver_info = BTUSB_MEDIATEK |
--
2.53.0
next prev parent reply other threads:[~2026-04-20 13:24 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260420132314.1023554-1-sashal@kernel.org>
2026-04-20 13:16 ` [PATCH AUTOSEL 6.18] Bluetooth: hci_sync: annotate data-races around hdev->req_status Sasha Levin
2026-04-20 13:16 ` [PATCH AUTOSEL 7.0-6.12] Bluetooth: btusb: Add new VID/PID 13d3/3579 for MT7902 Sasha Levin
2026-04-20 13:17 ` [PATCH AUTOSEL 7.0-6.12] Bluetooth: btusb: MediaTek MT7922: Add VID 0489 & PID e11d Sasha Levin
2026-04-20 13:17 ` Sasha Levin [this message]
2026-04-20 13:18 ` [PATCH AUTOSEL 7.0-6.12] Bluetooth: btmtk: add MT7902 MCU support Sasha Levin
2026-04-20 13:18 ` [PATCH AUTOSEL 7.0-6.1] Bluetooth: btmtk: improve mt79xx firmware setup retry flow Sasha Levin
2026-04-20 13:20 ` [PATCH AUTOSEL 7.0-6.12] Bluetooth: btusb: MT7922: Add VID/PID 0489/e174 Sasha Levin
2026-04-20 13:20 ` [PATCH AUTOSEL 7.0-5.10] Bluetooth: L2CAP: CoC: Disconnect if received packet size exceeds MPS Sasha Levin
2026-04-20 13:21 ` [PATCH AUTOSEL 7.0-5.10] Bluetooth: btbcm: Add entry for BCM4343A2 UART Bluetooth Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260420132314.1023554-58-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=dylan.eray6@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=luiz.von.dentz@intel.com \
--cc=marcel@holtmann.org \
--cc=patches@lists.linux.dev \
--cc=pmenzel@molgen.mpg.de \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox