Bluetooth: Add support for RTL8821CS
Subsystems (4)
v4 cover Bluetooth: Add support for RTL8821CS
From: Chris Morgan <[email protected]>
This patch series is to add support for the RTL8821CS Bluetooth controller found on the RTL8821CS WiFi/Bluetooth combo chip.
This has been tested with firmware version 0x75b8f098 which has been submitted by Realtek for inclusion in linux-firmware.
https://lore.kernel.org/linux-firmware/[email protected]/
Changes from V3:
- Corrected bindings so that all but the 8821 use enum, and 8821 uses items.
Changes from V2:
- Corrected devicetree documentation to change compatible from const back to enum.
- Removed "reviewed-by" from Alistair Francis as binding documentation updated with changes.
Changes from V1:
- Switched to use a fallback string for the rtl8822cs so as to not add an extra entry to the of_device_id table. The driver is capable of selecting the correct firmware blob to load.
- Updated the messages to note a new version of the firmware was tested and that Realtek has submitted this firmware upstream.
- Updated the devicetree node on the Anbernic RGxx3 series to use the fallback string of realtek,rtl8822cs-bt.
Chris Morgan (3):
dt-bindings: net: realtek-bluetooth: Add RTL8821CS
Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
arm64: dts: rockchip: Update compatible for bluetooth
.../bindings/net/realtek-bluetooth.yaml | 24 ++++++++++++------- .../dts/rockchip/rk3566-anbernic-rgxx3.dtsi | 2 +- drivers/bluetooth/btrtl.c | 8 +++++++ 3 files changed, 24 insertions(+), 10 deletions(-)
Signature · 1 line
2.34.1
PATCH v4 1/3 dt-bindings: net: realtek-bluetooth: Add RTL8821CS
From: Chris Morgan <[email protected]>
Add compatible string for RTL8821CS for existing Realtek Bluetooth driver.
--- .../bindings/net/realtek-bluetooth.yaml | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-)
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +15 -9
@@ -4,24 +4,30 @@ $id: http://devicetree.org/schemas/net/realtek-bluetooth.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# -title: RTL8723BS/RTL8723CS/RTL8822CS Bluetooth +title: RTL8723BS/RTL8723CS/RTL8821CS/RTL8822CS Bluetooth maintainers: - Vasily Khoruzhick <[email protected]> - Alistair Francis <[email protected]> description: - RTL8723CS/RTL8723CS/RTL8822CS is WiFi + BT chip. WiFi part is connected over - SDIO, while BT is connected over serial. It speaks H5 protocol with few - extra commands to upload firmware and change module speed. + RTL8723CS/RTL8723CS/RTL8821CS/RTL8822CS is a WiFi + BT chip. WiFi part + is connected over SDIO, while BT is connected over serial. It speaks + H5 protocol with few extra commands to upload firmware and change + module speed. properties: compatible: - enum: - - realtek,rtl8723bs-bt - - realtek,rtl8723cs-bt - - realtek,rtl8723ds-bt - - realtek,rtl8822cs-bt + oneOf: + - enum: + - realtek,rtl8723bs-bt + - realtek,rtl8723cs-bt + - realtek,rtl8723ds-bt + - realtek,rtl8822cs-bt + - items: + - enum: + - realtek,rtl8821cs-bt + - const: realtek,rtl8822cs-bt device-wake-gpios: maxItems: 1
Signature · 1 line
2.34.1
Re: [PATCH 1/3 V4] dt-bindings: net: realtek-bluetooth: Add RTL8821CS
Quoted 6 lines · Chris Morgan
From: Chris Morgan <[email protected]>
Add compatible string for RTL8821CS for existing Realtek Bluetooth driver.
Signed-off-by Chris Morgan <[email protected]>
Best regards,
Krzysztof
_______________________________________________
Linux-rockchip mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-rockchip
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/project/bluetooth/list/?series=725545
---Test result---
Test Summary:
CheckPatch PASS 1.99 seconds GitLint PASS 1.01 seconds SubjectPrefix FAIL 0.63 seconds BuildKernel PASS 31.21 seconds CheckAllWarning PASS 34.32 seconds CheckSparse WARNING 39.03 seconds CheckSmatch WARNING 108.48 seconds BuildKernel32 PASS 30.38 seconds TestRunnerSetup PASS 439.61 seconds TestRunner_l2cap-tester PASS 16.25 seconds TestRunner_iso-tester PASS 16.86 seconds TestRunner_bnep-tester PASS 5.38 seconds TestRunner_mgmt-tester PASS 107.78 seconds TestRunner_rfcomm-tester PASS 8.72 seconds TestRunner_sco-tester PASS 7.95 seconds TestRunner_ioctl-tester PASS 9.31 seconds TestRunner_mesh-tester PASS 6.75 seconds TestRunner_smp-tester PASS 7.89 seconds TestRunner_userchan-tester PASS 6.04 seconds IncrementalBuild PASS 37.58 seconds
Details
##############################
Test: SubjectPrefix - FAIL
Desc: Check subject contains "Bluetooth" prefix
Output:
"Bluetooth: " prefix is not specified in the subject
"Bluetooth: " prefix is not specified in the subject
##############################
Test: CheckSparse - WARNING
Desc: Run sparse tool with linux kernel
Output:drivers/bluetooth/btrtl.c: note: in included file:drivers/bluetooth/btrtl.h:47:45: warning: array of flexible structures
##############################
Test: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:drivers/bluetooth/btrtl.c: note: in included file:drivers/bluetooth/btrtl.h:47:45: warning: array of flexible structures
---
Regards,
Linux Bluetooth
Re: [PATCH 1/3 V4] dt-bindings: net: realtek-bluetooth: Add RTL8821CS
In reply to Chris MorganQuoted 6 lines · Chris Morgan
From: Chris Morgan <[email protected]>
Add compatible string for RTL8821CS for existing Realtek Bluetooth driver.
Signed-off-by Chris Morgan <[email protected]>
Alistair
Quoted 52 lines
---
.../bindings/net/realtek-bluetooth.yaml| 24 ++++++++++++-------1 file changed, 15 insertions(+), 9 deletions(-)Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +0
-0@@ -4,24 +4,30 @@$id: http://devicetree.org/schemas/net/realtek-bluetooth.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +1
-1-title: RTL8723BS/RTL8723CS/RTL8822CS Bluetooth +title: RTL8723BS/RTL8723CS/RTL8821CS/RTL8822CS Bluetoothmaintainers:
- Vasily Khoruzhick <[email protected]>
- Alistair Francis <[email protected]>description:
Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +4
-3- RTL8723CS/RTL8723CS/RTL8822CS is WiFi + BT chip. WiFi part is connected over - SDIO, while BT is connected over serial. It speaks H5 protocol with few - extra commands to upload firmware and change module speed. + RTL8723CS/RTL8723CS/RTL8821CS/RTL8822CS is a WiFi + BT chip. WiFi part + is connected over SDIO, while BT is connected over serial. It speaks + H5 protocol with few extra commands to upload firmware and change + module speed.properties:
compatible:Documentation/devicetree/bindings/net/realtek-bluetooth.yaml +10
-5- enum: - - realtek,rtl8723bs-bt - - realtek,rtl8723cs-bt - - realtek,rtl8723ds-bt - - realtek,rtl8822cs-bt + oneOf: + - enum: + - realtek,rtl8723bs-bt + - realtek,rtl8723cs-bt + - realtek,rtl8723ds-bt + - realtek,rtl8822cs-bt + - items: + - enum: + - realtek,rtl8821cs-bt + - const: realtek,rtl8822cs-bt device-wake-gpios: maxItems: 1Signature · 1 line
2.34.1
_______________________________________________
Linux-rockchip mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-rockchip
PATCH v4 2/3 Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
RTL8821CS is a WiFi + Bluetooth combo chip from Realtek that provides WiFi A/B/G/N/AC over an SDIO interface and Bluetooth 4.2 over a UART interface.
Note that the firmware this was tested with was firmware version 0x75b8f098.
--- drivers/bluetooth/btrtl.c | 8 ++++++++ 1 file changed, 8 insertions(+)
drivers/bluetooth/btrtl.c +8 -0
@@ -128,6 +128,14 @@ static const struct id_table ic_id_table[] = { .fw_name = "rtl_bt/rtl8821c_fw.bin", .cfg_name = "rtl_bt/rtl8821c_config" }, +/* 8821CS */ + { IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_UART), + .config_needed = true, + .has_rom_version = true, + .has_msft_ext = true, + .fw_name = "rtl_bt/rtl8821cs_fw.bin", + .cfg_name = "rtl_bt/rtl8821cs_config" }, + /* 8761A */ { IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB), .config_needed = false,
Signature · 1 line
2.34.1
Re: [PATCH 2/3 V4] Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
I shudder to bring this up now, but I'm encountering a new bug and might have to withdraw this.
I'm receiving errors in dmesg of the following, and I can't seem to figure out the root cause:
Bluetooth: hci0: Out-of-order packet arrived
Any thoughts on what might cause it?
Thank you.
Quoted 35 lines · Chris Morgan
From: Chris Morgan <[email protected]>
RTL8821CS is a WiFi + Bluetooth combo chip from Realtek that provides WiFi A/B/G/N/AC over an SDIO interface and Bluetooth 4.2 over a UART interface.
Note that the firmware this was tested with was firmware version
0x75b8f098.Signed-off-by Chris Morgan <[email protected]>--- drivers/bluetooth/btrtl.c | 8 ++++++++ 1 file changed, 8 insertions(+)drivers/bluetooth/btrtl.c +8
-1@@ -128,6 +128,14 @@ static const struct id_table ic_id_table[] = { .fw_name = "rtl_bt/rtl8821c_fw.bin", .cfg_name = "rtl_bt/rtl8821c_config" }, +/* 8821CS */ + { IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_UART), + .config_needed = true, + .has_rom_version = true, + .has_msft_ext = true, + .fw_name = "rtl_bt/rtl8821cs_fw.bin", + .cfg_name = "rtl_bt/rtl8821cs_config" }, + /* 8761A */ { IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB), .config_needed = false, --
Quoted 2 lines
2.34.1
_______________________________________________
Linux-rockchip mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-rockchip
Re: [PATCH 2/3 V4] Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
I found the fix, simply put changing the compatible from realtek,rtl8822cs-bt to realtek,rtl8732bs-bt fixes it (because it sets the "H5_INFO_WAKEUP_DISABLE" flag). Is it too late for a V5, or should I submit this as a fix to the devicetree and devicetree documentation?
Thank you.
Quoted 49 lines · Chris Morgan
I shudder to bring this up now, but I'm encountering a new bug and might have to withdraw this.
I'm receiving errors in dmesg of the following, and I can't seem to figure out the root cause:
Bluetooth: hci0: Out-of-order packet arrivedAny thoughts on what might cause it?
Thank you.Quoted 37 lines · Chris Morgan
From: Chris Morgan <[email protected]>
RTL8821CS is a WiFi + Bluetooth combo chip from Realtek that provides WiFi A/B/G/N/AC over an SDIO interface and Bluetooth 4.2 over a UART interface.
Note that the firmware this was tested with was firmware version
0x75b8f098.Signed-off-by Chris Morgan <[email protected]>--- drivers/bluetooth/btrtl.c | 8 ++++++++ 1 file changed, 8 insertions(+)drivers/bluetooth/btrtl.c +8
-1@@ -128,6 +128,14 @@ static const struct id_table ic_id_table[] = { .fw_name = "rtl_bt/rtl8821c_fw.bin", .cfg_name = "rtl_bt/rtl8821c_config" }, +/* 8821CS */ + { IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_UART), + .config_needed = true, + .has_rom_version = true, + .has_msft_ext = true, + .fw_name = "rtl_bt/rtl8821cs_fw.bin", + .cfg_name = "rtl_bt/rtl8821cs_config" }, + /* 8761A */ { IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB), .config_needed = false, --2.34.1
Re: [PATCH 2/3 V4] Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
Quoted 5 lines · Chris Morgan
I found the fix, simply put changing the compatible from realtek,rtl8822cs-bt to realtek,rtl8732bs-bt fixes it (because it sets the "
H5_INFO_WAKEUP_DISABLE" flag). Is it too late for a V5, or should I submit this as a fix to the devicetree and devicetree documentation?
But is it actually compatible with rtl8723bs-bt though? I think you may need to add an entry for 8821cs to rtl_bluetooth_of_match in hci_h5.c
Quoted 38 lines
Thank you.
Quoted 35 lines · Chris Morgan
I shudder to bring this up now, but I'm encountering a new bug and might have to withdraw this.
I'm receiving errors in dmesg of the following, and I can't seem to figure out the root cause:
Bluetooth: hci0: Out-of-order packet arrivedAny thoughts on what might cause it?
Thank you.Quoted 23 lines · Chris Morgan
From: Chris Morgan <[email protected]>
RTL8821CS is a WiFi + Bluetooth combo chip from Realtek that provides WiFi A/B/G/N/AC over an SDIO interface and Bluetooth 4.2 over a UART interface.
Note that the firmware this was tested with was firmware version
0x75b8f098.Signed-off-by Chris Morgan <[email protected]>--- drivers/bluetooth/btrtl.c | 8 ++++++++ 1 file changed, 8 insertions(+)drivers/bluetooth/btrtl.c +0
-0@@ -128,6 +128,14 @@ static const struct id_table ic_id_table[] = { .fw_name = "rtl_bt/rtl8821c_fw.bin", .cfg_name = "rtl_bt/rtl8821c_config" },
Quoted 14 lines
Quoted 6 lines
Quoted 6 lines
drivers/bluetooth/btrtl.c +6
-0+/* 8821CS */ + { IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_UART), + .config_needed = true, + .has_rom_version = true, + .has_msft_ext = true, + .fw_name = "rtl_bt/rtl8821cs_fw.bin",Quoted 8 lines
Quoted 8 lines
drivers/bluetooth/btrtl.c +2
-1+ .cfg_name = "rtl_bt/rtl8821cs_config" }, +/* 8761A */ { IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB), .config_needed = false, --2.34.1
_______________________________________________
Linux-rockchip mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-rockchip
Re: [PATCH 2/3 V4] Bluetooth: hci_h5: btrtl: Add support for RTL8821CS
Quoted 10 lines · Vasily Khoruzhick
Quoted 5 lines · Chris Morgan
I found the fix, simply put changing the compatible from realtek,rtl8822cs-bt to realtek,rtl8732bs-bt fixes it (because it sets the "
H5_INFO_WAKEUP_DISABLE" flag). Is it too late for a V5, or should I submit this as a fix to the devicetree and devicetree documentation?But is it actually compatible with rtl8723bs-bt though? I think you may need to add an entry for 8821cs to
rtl_bluetooth_of_matchinhci_h5.c
The compatible string would be an exact copy of what is present for rtl8723bs-bt. Previously I was advised by the devicetree team to just use a fallback string rather than add a duplicate entry to the driver, so that's what I did. The driver itself can detect the difference between the 8821cs and 8723bs and load the appropriate firmware.
Technically the rtl8822cs-bt also works as long as you only want to "test" the driver and not use it. It's the power management stuff that causes it to fail roughly 9 out of every 10 times you try to use it for more than simple pairing (I tested 3 different controllers with the new compatible string for a total of 7 tests and it works consistently now).
If you're okay with the compatible string change, I'll update it and resubmit this as a V5. It shouldn't require a change to the driver, only the binding.
Thank you.
Quoted 53 lines
Quoted 53 lines
Thank you.
Quoted 49 lines · Chris Morgan
I shudder to bring this up now, but I'm encountering a new bug and might have to withdraw this.
I'm receiving errors in dmesg of the following, and I can't seem to figure out the root cause:
Bluetooth: hci0: Out-of-order packet arrivedAny thoughts on what might cause it?
Thank you.Quoted 37 lines · Chris Morgan
From: Chris Morgan <[email protected]>
RTL8821CS is a WiFi + Bluetooth combo chip from Realtek that provides WiFi A/B/G/N/AC over an SDIO interface and Bluetooth 4.2 over a UART interface.
Note that the firmware this was tested with was firmware version
0x75b8f098.Signed-off-by Chris Morgan <[email protected]>--- drivers/bluetooth/btrtl.c | 8 ++++++++ 1 file changed, 8 insertions(+)drivers/bluetooth/btrtl.c +8
-1@@ -128,6 +128,14 @@ static const struct id_table ic_id_table[] = { .fw_name = "rtl_bt/rtl8821c_fw.bin", .cfg_name = "rtl_bt/rtl8821c_config" }, +/* 8821CS */ + { IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_UART), + .config_needed = true, + .has_rom_version = true, + .has_msft_ext = true, + .fw_name = "rtl_bt/rtl8821cs_fw.bin", + .cfg_name = "rtl_bt/rtl8821cs_config" }, + /* 8761A */ { IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB), .config_needed = false, --2.34.1
PATCH v4 3/3 arm64: dts: rockchip: Update compatible for bluetooth
In reply to Chris MorganFrom: Chris Morgan <[email protected]>
Update the compatible for the Realtek RTL8821CS bluetooth node.
--- arch/arm64/boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi +1 -1
@@ -716,7 +716,7 @@ &uart1 { status = "okay"; bluetooth { - compatible = "realtek,rtl8821cs-bt"; + compatible = "realtek,rtl8821cs-bt", "realtek,rtl8822cs-bt"; device-wake-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>; enable-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>; host-wake-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>;
Signature · 1 line
2.34.1
This series was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz <[email protected]>:
Hello:
This series was applied to bluetooth/bluetooth-next.git (master) by Luiz Augusto von Dentz <[email protected]>:
Quoted 9 lines · On Tue, 28 Feb 2023 09:22:02 -0600 you wrote:
From: Chris Morgan <[email protected]>
This patch series is to add support for the RTL8821CS Bluetooth controller found on the RTL8821CS WiFi/Bluetooth combo chip.
This has been tested with firmware version
0x75b8f098which has been submitted by Realtek for inclusion in linux-firmware.[...]
Here is the summary with links:
- [1/3,V4] dt-bindings: net: realtek-bluetooth: Add RTL8821CS
https://git.kernel.org/bluetooth/bluetooth-next/c/b564bad5b54d - [2/3,V4] Bluetooth: hci_h5: btrtl: Add support for RTL8821CS https://git.kernel.org/bluetooth/bluetooth-next/c/8b449db459d9 - [3/3,V4] arm64: dts: rockchip: Update compatible for bluetooth https://git.kernel.org/bluetooth/bluetooth-next/c/d305437d4d2a
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html