From: Chris Lu chris.lu@mediatek.com
[ Upstream commit c126f98c011f5796ba118ef2093122d02809d30d ]
Add VID 0489 & PID e135 for MediaTek MT7920 USB Bluetooth chip.
The information in /sys/kernel/debug/usb/devices about the Bluetooth device is listed as the below.
T: Bus=06 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0 D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0489 ProdID=e135 Rev= 1.00 S: Manufacturer=MediaTek Inc. S: Product=Wireless_Device S: SerialNumber=000000000 C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 3 Cls=e0(wlcon) Sub=01 Prot=01 I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=125us E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms I:* If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=125us E: Ad=0a(O) Atr=03(Int.) MxPS= 64 Ivl=125us I: If#= 2 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none) E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=125us E: Ad=0a(O) Atr=03(Int.) MxPS= 64 Ivl=125us
Signed-off-by: Chris Lu chris.lu@mediatek.com Reviewed-by: Paul Menzel pmenzel@molgen.mpg.de 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:
## Commit Analysis: Bluetooth btusb MT7920 VID/PID Addition
### 1. COMMIT MESSAGE ANALYSIS
**Subject:** Adding a new USB VID/PID (0489/e135) for MediaTek MT7920 Bluetooth chip
**Key observations:** - No `Cc: stable@vger.kernel.org` tag (not unusual for device ID additions) - No `Fixes:` tag (not applicable - this enables new hardware, doesn't fix a bug) - Author is from MediaTek (hardware vendor) - Has `Reviewed-by` from Paul Menzel - Signed off by Bluetooth maintainer Luiz Augusto von Dentz
### 2. CODE CHANGE ANALYSIS
The change is minimal: ```c + { USB_DEVICE(0x0489, 0xe135), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH }, ```
This adds a single USB device ID entry to the `quirks_table[]` in `drivers/bluetooth/btusb.c`. The entry: - Uses VID 0x0489, PID 0xe135 - Uses identical flags to the adjacent MT7920 entry (0x0489, 0xe134) - Follows the exact pattern of all other MediaTek device entries
### 3. CLASSIFICATION
This falls squarely into the **"NEW DEVICE IDs"** exception category for stable backports. Per the stable kernel rules:
Adding PCI IDs, USB IDs, ACPI IDs, etc. to existing drivers - These
are trivial one-line additions that enable hardware support
The btusb driver already fully supports MediaTek MT7920 devices; this just adds recognition for a new variant.
### 4. SCOPE AND RISK ASSESSMENT
| Factor | Assessment | |--------|------------| | Lines changed | 2 (effectively 1 entry) | | Files touched | 1 | | Complexity | Trivial | | Risk | Essentially zero |
**Risk justification:** This only affects devices with exactly VID=0x0489 and PID=0xe135. It cannot cause regressions for any other hardware. The change is purely additive with no modification to existing functionality.
### 5. USER IMPACT
**Without this patch:** Users with MT7920 Bluetooth USB adapters using this VID/PID combination have no Bluetooth functionality - the kernel doesn't recognize their device.
**With this patch:** Bluetooth works normally using the mature, existing MediaTek btusb support.
The USB device information in the commit message confirms this is real hardware that users possess.
### 6. STABILITY INDICATORS
- ✅ Reviewed by Paul Menzel - ✅ Signed off by Bluetooth subsystem maintainer - ✅ Author from hardware vendor (MediaTek) - ✅ Identical pattern to many existing entries - ✅ Same flags used as sister device (e134)
### 7. DEPENDENCY CHECK
- **No dependencies** on other commits - Uses existing macros (`USB_DEVICE`) and flags (`BTUSB_MEDIATEK`, `BTUSB_WIDEBAND_SPEECH`) - The btusb driver with MediaTek MT7920 support exists in stable kernels
### CONCLUSION
This is a textbook stable-appropriate device ID addition:
1. **Trivial 2-line change** - lowest possible complexity 2. **Zero regression risk** - only affects one specific hardware variant 3. **Real user impact** - enables Bluetooth for users with this hardware 4. **Well-reviewed** - proper sign-offs from maintainer and vendor 5. **No new code** - leverages existing, mature MediaTek btusb support 6. **No dependencies** - applies cleanly to any kernel with MT7920 support
Device ID additions like this are routinely backported to stable trees because they provide clear value (enabling hardware) with essentially no risk. The pattern is identical to dozens of similar entries in the same file.
**YES**
drivers/bluetooth/btusb.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index fa683bb7f0b49..595afeff4afb5 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -621,6 +621,8 @@ static const struct usb_device_id quirks_table[] = { /* Additional MediaTek MT7920 Bluetooth devices */ { USB_DEVICE(0x0489, 0xe134), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0489, 0xe135), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x13d3, 0x3620), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x13d3, 0x3621), .driver_info = BTUSB_MEDIATEK |