git: 3e72d0b40040 - main - rtlbtfw(8): Sync device VID/PID list with Linux 6.15-rc4
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 14 May 2025 14:38:54 UTC
The branch main has been updated by wulf:
URL: https://cgit.FreeBSD.org/src/commit/?id=3e72d0b40040f94c4b99ab9dfa0a0e1b62dff397
commit 3e72d0b40040f94c4b99ab9dfa0a0e1b62dff397
Author: Vladimir Kondratyev <wulf@FreeBSD.org>
AuthorDate: 2025-05-14 14:38:10 +0000
Commit: Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2025-05-14 14:38:10 +0000
rtlbtfw(8): Sync device VID/PID list with Linux 6.15-rc4
Sponsored by: Future Crew, LLC
MFC after: 1 month
---
sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c | 20 ++++++++
usr.sbin/bluetooth/rtlbtfw/main.c | 20 ++++++++
usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.c | 14 ++++++
usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.h | 1 +
usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf | 66 ++++++++++++++++++++++++-
5 files changed, 119 insertions(+), 2 deletions(-)
diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c
index c3fb98b46e6a..0181a67ac604 100644
--- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c
+++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_rtl.c
@@ -84,6 +84,9 @@ const STRUCT_USB_HOST_ID ubt_rtl_devs[] =
/* Realtek 8822CU Bluetooth devices */
{ USB_VPI(0x13d3, 0x3549, 0) },
+ /* Realtek 8851BE Bluetooth devices */
+ { USB_VPI(0x13d3, 0x3600, 0) },
+
/* Realtek 8852AE Bluetooth devices */
{ USB_VPI(0x0bda, 0x2852, 0) },
{ USB_VPI(0x0bda, 0xc852, 0) },
@@ -100,11 +103,28 @@ const STRUCT_USB_HOST_ID ubt_rtl_devs[] =
{ USB_VPI(0x13d3, 0x3587, 0) },
{ USB_VPI(0x13d3, 0x3586, 0) },
{ USB_VPI(0x13d3, 0x3592, 0) },
+ { USB_VPI(0x0489, 0xe122, 0) },
/* Realtek 8852BE Bluetooth devices */
{ USB_VPI(0x0cb8, 0xc559, 0) },
+ { USB_VPI(0x0bda, 0x4853, 0) },
{ USB_VPI(0x0bda, 0x887b, 0) },
+ { USB_VPI(0x0bda, 0xb85b, 0) },
+ { USB_VPI(0x13d3, 0x3570, 0) },
{ USB_VPI(0x13d3, 0x3571, 0) },
+ { USB_VPI(0x13d3, 0x3572, 0) },
+ { USB_VPI(0x13d3, 0x3591, 0) },
+ { USB_VPI(0x0489, 0xe123, 0) },
+ { USB_VPI(0x0489, 0xe125, 0) },
+
+ /* Realtek 8852BT/8852BE-VT Bluetooth devices */
+ { USB_VPI(0x0bda, 0x8520, 0) },
+
+ /* Realtek 8922AE Bluetooth devices */
+ { USB_VPI(0x0bda, 0x8922, 0) },
+ { USB_VPI(0x13d3, 0x3617, 0) },
+ { USB_VPI(0x13d3, 0x3616, 0) },
+ { USB_VPI(0x0489, 0xe130, 0) },
/* Realtek 8723AE Bluetooth devices */
{ USB_VPI(0x0930, 0x021d, 0) },
diff --git a/usr.sbin/bluetooth/rtlbtfw/main.c b/usr.sbin/bluetooth/rtlbtfw/main.c
index 700b9b43bafa..e87a98036265 100644
--- a/usr.sbin/bluetooth/rtlbtfw/main.c
+++ b/usr.sbin/bluetooth/rtlbtfw/main.c
@@ -67,6 +67,9 @@ static struct rtlbt_devid rtlbt_list[] = {
/* Realtek 8822CU Bluetooth devices */
{ .vendor_id = 0x13d3, .product_id = 0x3549 },
+ /* Realtek 8851BE Bluetooth devices */
+ { .vendor_id = 0x13d3, .product_id = 0x3600 },
+
/* Realtek 8852AE Bluetooth devices */
{ .vendor_id = 0x0bda, .product_id = 0x2852 },
{ .vendor_id = 0x0bda, .product_id = 0xc852 },
@@ -83,11 +86,28 @@ static struct rtlbt_devid rtlbt_list[] = {
{ .vendor_id = 0x13d3, .product_id = 0x3587 },
{ .vendor_id = 0x13d3, .product_id = 0x3586 },
{ .vendor_id = 0x13d3, .product_id = 0x3592 },
+ { .vendor_id = 0x0489, .product_id = 0xe122 },
/* Realtek 8852BE Bluetooth devices */
{ .vendor_id = 0x0cb8, .product_id = 0xc559 },
+ { .vendor_id = 0x0bda, .product_id = 0x4853 },
{ .vendor_id = 0x0bda, .product_id = 0x887b },
+ { .vendor_id = 0x0bda, .product_id = 0xb85b },
+ { .vendor_id = 0x13d3, .product_id = 0x3570 },
{ .vendor_id = 0x13d3, .product_id = 0x3571 },
+ { .vendor_id = 0x13d3, .product_id = 0x3572 },
+ { .vendor_id = 0x13d3, .product_id = 0x3591 },
+ { .vendor_id = 0x0489, .product_id = 0xe123 },
+ { .vendor_id = 0x0489, .product_id = 0xe125 },
+
+ /* Realtek 8852BT/8852BE-VT Bluetooth devices */
+ { .vendor_id = 0x0bda, .product_id = 0x8520 },
+
+ /* Realtek 8922AE Bluetooth devices */
+ { .vendor_id = 0x0bda, .product_id = 0x8922 },
+ { .vendor_id = 0x13d3, .product_id = 0x3617 },
+ { .vendor_id = 0x13d3, .product_id = 0x3616 },
+ { .vendor_id = 0x0489, .product_id = 0xe130 },
/* Realtek 8723AE Bluetooth devices */
{ .vendor_id = 0x0930, .product_id = 0x021d },
diff --git a/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.c b/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.c
index c58a8feb41a4..d7e9f2f939c6 100644
--- a/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.c
+++ b/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.c
@@ -118,6 +118,18 @@ static const struct rtlbt_id_table rtlbt_ic_id_table[] = {
.hci_version = 0xc,
.flags = RTLBT_IC_FLAG_MSFT,
.fw_name = "rtl8851bu",
+ }, { /* 8922A */
+ .lmp_subversion = RTLBT_ROM_LMP_8922A,
+ .hci_revision = 0xa,
+ .hci_version = 0xc,
+ .flags = RTLBT_IC_FLAG_MSFT,
+ .fw_name = "rtl8922au",
+ }, { /* 8852BT/8852BE-VT */
+ .lmp_subversion = RTLBT_ROM_LMP_8852A,
+ .hci_revision = 0x87,
+ .hci_version = 0xc,
+ .flags = RTLBT_IC_FLAG_MSFT,
+ .fw_name = "rtl8852btu",
},
};
@@ -138,6 +150,8 @@ static const uint16_t project_ids[] = {
[ 25 ] = RTLBT_ROM_LMP_8852A, /* 8852CU */
[ 33 ] = RTLBT_ROM_LMP_8822B, /* 8822EU */
[ 36 ] = RTLBT_ROM_LMP_8851B, /* 8851BU */
+ [ 44 ] = RTLBT_ROM_LMP_8922A, /* 8922A */
+ [ 47 ] = RTLBT_ROM_LMP_8852A, /* 8852BT */
};
/* Signatures */
diff --git a/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.h b/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.h
index 48b30cb2289b..e9af6c93950e 100644
--- a/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.h
+++ b/usr.sbin/bluetooth/rtlbtfw/rtlbt_fw.h
@@ -41,6 +41,7 @@
#define RTLBT_ROM_LMP_8822B 0x8822
#define RTLBT_ROM_LMP_8852A 0x8852
#define RTLBT_ROM_LMP_8851B 0x8851
+#define RTLBT_ROM_LMP_8922A 0x8922
#define RTLBT_PATCH_SNIPPETS 0x01
#define RTLBT_PATCH_DUMMY_HEADER 0x02
diff --git a/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf b/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf
index d45ba0bd92c4..61ae53db8f39 100644
--- a/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf
+++ b/usr.sbin/bluetooth/rtlbtfw/rtlbtfw.conf
@@ -46,6 +46,16 @@ notify 100 {
action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
};
+# Realtek 8851BE Bluetooth devices
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x13d3";
+ match "product" "0x3600";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
+
# Realtek 8852AE Bluetooth devices
notify 100 {
match "system" "USB";
@@ -113,6 +123,14 @@ notify 100 {
match "product" "(0x3587|0x3586|0x3592)";
action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
};
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0489";
+ match "product" "0xe122";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
# Realtek 8852BE Bluetooth devices
notify 100 {
@@ -128,7 +146,43 @@ notify 100 {
match "subsystem" "DEVICE";
match "type" "ATTACH";
match "vendor" "0x0bda";
- match "product" "0x887b";
+ match "product" "(0x4853|0x887b|0xb85b)";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x13d3";
+ match "product" "(0x3570|0x3571|0x3572|0x3591)";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0489";
+ match "product" "(0xe123|0xe125)";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
+
+# Realtek 8852BT/8852BE-VT Bluetooth devices
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0bda";
+ match "product" "0x8520";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
+
+# Realtek 8922AE Bluetooth devices
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0bda";
+ match "product" "0x8922";
action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
};
notify 100 {
@@ -136,7 +190,15 @@ notify 100 {
match "subsystem" "DEVICE";
match "type" "ATTACH";
match "vendor" "0x13d3";
- match "product" "0x3571";
+ match "product" "(0x3617|0x3616)";
+ action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
+};
+notify 100 {
+ match "system" "USB";
+ match "subsystem" "DEVICE";
+ match "type" "ATTACH";
+ match "vendor" "0x0489";
+ match "product" "0xe130";
action "/usr/sbin/rtlbtfw -d $cdev -f /usr/local/share/rtlbt-firmware";
};