mbox series

[v5,0/4] Add WCN6855 Bluetooth support

Message ID 20230209020916.6475-1-steev@kali.org (mailing list archive)
Headers show
Series Add WCN6855 Bluetooth support | expand

Message

Steev Klimaszewski Feb. 9, 2023, 2:09 a.m. UTC
First things first, I do not have access to the specs nor the schematics, so a
lot of this was done via guess work, looking at the acpi tables, and looking at
how a similar device (wcn6750) was added.

The 5th revision addresses comments from Luiz about the Bluetooth driver, as
well as Konrad's comments on the dts file.

The end result is that we do have a working device, but not entirely reliable.

Hopefully by getting this out there, people who do have access to the specs or
schematics can see where the improvements or fixes need to come.

There are a few things that I am not sure why they happen, and don't have the
knowledge level to figure out why they happen or debugging it.

Bluetooth: hci0: setting up wcn6855
Bluetooth: hci0: Frame reassembly failed (-84)
Bluetooth: hci0: QCA Product ID   :0x00000013
Bluetooth: hci0: QCA SOC Version  :0x400c0210
Bluetooth: hci0: QCA ROM Version  :0x00000201
Bluetooth: hci0: QCA Patch Version:0x000038e6
Bluetooth: hci0: QCA controller version 0x02100201
Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
Bluetooth: hci0: QCA Downloading qca/hpnv21.bin
Bluetooth: hci0: QCA setup on UART is completed

I do not know why the Frame assembly failed, and modprobe -r hci_uart and then
modprobe hci_uart does not show the same Frame assembly failed.

The BD Address also seems to be incorrect, and I'm not sure what is going on
there either.

Testing was done by connecting a Razer Orochi bluetooth mouse, and using it, as
well as connecting to and using an H2GO bluetooth speaker and playing audio out
via canberra-gtk-play as well as a couple of YouTube videos in a browser.

The mouse only seems to work when < 2 ft. from the laptop, and for the speaker, only
"A2DP Sink, codec SBC" would provide audio output, and while I could see that
data was being sent to the speaker, it wasn't always outputting, and going >
4ft. away, would often disconnect.

steev@wintermute:~$ hciconfig -a
hci0:   Type: Primary  Bus: UART
        BD Address: 00:00:00:00:5A:AD  ACL MTU: 1024:8  SCO MTU: 240:4
        UP RUNNING PSCAN
        RX bytes:1492 acl:0 sco:0 events:126 errors:0
        TX bytes:128743 acl:0 sco:0 commands:597 errors:0
        Features: 0xff 0xfe 0x8f 0xfe 0xd8 0x3f 0x5b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF
        Link mode: PERIPHERAL ACCEPT
        Name: 'wintermute'
        Class: 0x0c010c
        Service Classes: Rendering, Capturing
        Device Class: Computer, Laptop
        HCI Version:  (0xc)  Revision: 0x0
        LMP Version:  (0xc)  Subversion: 0x46f7
        Manufacturer: Qualcomm (29)

steev@wintermute:~$ dmesg | grep Razer
[ 3089.235440] input: Razer Orochi as /devices/virtual/misc/uhid/0005:1532:0056.0003/input/input11
[ 3089.238580] hid-generic 0005:1532:0056.0003: input,hidraw2: BLUETOOTH HID v0.01 Mouse [Razer Orochi] on 00:00:00:00:5a:ad
steev@wintermute:~$ dmesg | grep H2GO
[ 3140.959947] input: H2GO Speaker (AVRCP) as /devices/virtual/input/input12

Bjorn Andersson (1):
  arm64: dts: qcom: sc8280xp: Define uart2

Steev Klimaszewski (3):
  dt-bindings: net: Add WCN6855 Bluetooth
  Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855
  arm64: dts: qcom: thinkpad-x13s: Add bluetooth

 .../net/bluetooth/qualcomm-bluetooth.yaml     | 17 +++++
 .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts    | 76 +++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi        | 14 ++++
 drivers/bluetooth/btqca.c                     |  9 ++-
 drivers/bluetooth/btqca.h                     | 10 +++
 drivers/bluetooth/hci_qca.c                   | 50 +++++++++---
 6 files changed, 163 insertions(+), 13 deletions(-)


base-commit: 4fafd96910add124586b549ad005dcd179de8a18

Comments

Bjorn Andersson Feb. 10, 2023, 5:09 p.m. UTC | #1
On Wed, Feb 08, 2023 at 08:09:12PM -0600, Steev Klimaszewski wrote:
> First things first, I do not have access to the specs nor the schematics, so a
> lot of this was done via guess work, looking at the acpi tables, and looking at
> how a similar device (wcn6750) was added.
> 
> The 5th revision addresses comments from Luiz about the Bluetooth driver, as
> well as Konrad's comments on the dts file.
> 
> The end result is that we do have a working device, but not entirely reliable.
> 

Except for the one warning/error about frame assembly I've not seen any
reliability issues with this series.

> Hopefully by getting this out there, people who do have access to the specs or
> schematics can see where the improvements or fixes need to come.
> 
> There are a few things that I am not sure why they happen, and don't have the
> knowledge level to figure out why they happen or debugging it.
> 
> Bluetooth: hci0: setting up wcn6855
> Bluetooth: hci0: Frame reassembly failed (-84)
> Bluetooth: hci0: QCA Product ID   :0x00000013
> Bluetooth: hci0: QCA SOC Version  :0x400c0210
> Bluetooth: hci0: QCA ROM Version  :0x00000201
> Bluetooth: hci0: QCA Patch Version:0x000038e6
> Bluetooth: hci0: QCA controller version 0x02100201
> Bluetooth: hci0: QCA Downloading qca/hpbtfw21.tlv
> Bluetooth: hci0: QCA Downloading qca/hpnv21.bin
> Bluetooth: hci0: QCA setup on UART is completed
> 
> I do not know why the Frame assembly failed, and modprobe -r hci_uart and then
> modprobe hci_uart does not show the same Frame assembly failed.
> 
> The BD Address also seems to be incorrect, and I'm not sure what is going on
> there either.
> 

Changing the public-addr after the fact works...

> Testing was done by connecting a Razer Orochi bluetooth mouse, and using it, as
> well as connecting to and using an H2GO bluetooth speaker and playing audio out
> via canberra-gtk-play as well as a couple of YouTube videos in a browser.
> 
> The mouse only seems to work when < 2 ft. from the laptop, and for the speaker, only
> "A2DP Sink, codec SBC" would provide audio output, and while I could see that
> data was being sent to the speaker, it wasn't always outputting, and going >
> 4ft. away, would often disconnect.
> 

With the interference from WiFi removed I have very positive results
with this, been listening to music using this for a week now without any
concerns.

Tested-by: Bjorn Andersson <andersson@kernel.org>

Regards,
Bjorn

> steev@wintermute:~$ hciconfig -a
> hci0:   Type: Primary  Bus: UART
>         BD Address: 00:00:00:00:5A:AD  ACL MTU: 1024:8  SCO MTU: 240:4
>         UP RUNNING PSCAN
>         RX bytes:1492 acl:0 sco:0 events:126 errors:0
>         TX bytes:128743 acl:0 sco:0 commands:597 errors:0
>         Features: 0xff 0xfe 0x8f 0xfe 0xd8 0x3f 0x5b 0x87
>         Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
>         Link policy: RSWITCH HOLD SNIFF
>         Link mode: PERIPHERAL ACCEPT
>         Name: 'wintermute'
>         Class: 0x0c010c
>         Service Classes: Rendering, Capturing
>         Device Class: Computer, Laptop
>         HCI Version:  (0xc)  Revision: 0x0
>         LMP Version:  (0xc)  Subversion: 0x46f7
>         Manufacturer: Qualcomm (29)
> 
> steev@wintermute:~$ dmesg | grep Razer
> [ 3089.235440] input: Razer Orochi as /devices/virtual/misc/uhid/0005:1532:0056.0003/input/input11
> [ 3089.238580] hid-generic 0005:1532:0056.0003: input,hidraw2: BLUETOOTH HID v0.01 Mouse [Razer Orochi] on 00:00:00:00:5a:ad
> steev@wintermute:~$ dmesg | grep H2GO
> [ 3140.959947] input: H2GO Speaker (AVRCP) as /devices/virtual/input/input12
> 
> Bjorn Andersson (1):
>   arm64: dts: qcom: sc8280xp: Define uart2
> 
> Steev Klimaszewski (3):
>   dt-bindings: net: Add WCN6855 Bluetooth
>   Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855
>   arm64: dts: qcom: thinkpad-x13s: Add bluetooth
> 
>  .../net/bluetooth/qualcomm-bluetooth.yaml     | 17 +++++
>  .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts    | 76 +++++++++++++++++++
>  arch/arm64/boot/dts/qcom/sc8280xp.dtsi        | 14 ++++
>  drivers/bluetooth/btqca.c                     |  9 ++-
>  drivers/bluetooth/btqca.h                     | 10 +++
>  drivers/bluetooth/hci_qca.c                   | 50 +++++++++---
>  6 files changed, 163 insertions(+), 13 deletions(-)
> 
> 
> base-commit: 4fafd96910add124586b549ad005dcd179de8a18
> -- 
> 2.39.1
>
Bjorn Andersson April 5, 2023, 4:09 a.m. UTC | #2
On Wed, 8 Feb 2023 20:09:12 -0600, Steev Klimaszewski wrote:
> First things first, I do not have access to the specs nor the schematics, so a
> lot of this was done via guess work, looking at the acpi tables, and looking at
> how a similar device (wcn6750) was added.
> 
> The 5th revision addresses comments from Luiz about the Bluetooth driver, as
> well as Konrad's comments on the dts file.
> 
> [...]

Applied, thanks!

[1/4] dt-bindings: net: Add WCN6855 Bluetooth
      (no commit info)
[2/4] Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855
      (no commit info)
[3/4] arm64: dts: qcom: sc8280xp: Define uart2
      commit: 9db28f297526f17c6575ec0eefc93a8b1642cff7
[4/4] arm64: dts: qcom: thinkpad-x13s: Add bluetooth
      (no commit info)

Best regards,