mbox series

[v8,0/4] Add WCN6855 Bluetooth support

Message ID 20230326233812.28058-1-steev@kali.org
Headers show
Series Add WCN6855 Bluetooth support | expand

Message

Steev Klimaszewski March 26, 2023, 11:38 p.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.

This patchset has 2 patchsets that it depends on, for the bindings so that they
pass dtbs_check, as well as adding in the needed regulators to make bluetooth
work.

https://lore.kernel.org/lkml/20230316105800.18751-1-johan+linaro@kernel.org/
and
https://lore.kernel.org/lkml/20230322113318.17908-1-johan+linaro@kernel.org/

The end result is that we do have a working device, using the firmware files
that are found in the linux-firmware git repository already.


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

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.

I do not know why the Frame assembly failed, and modprobe -r hci_uart and then
modprobe hci_uart does not always 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.
Additionally, a huddle was done in Slack on Chromium with a pair of Gen1 Apple
AirPods as well as a hangout in Discord on Firefox ESR.

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
steev@wintermute:~$ dmesg | grep AirPod
[  853.742619] input: Steev’s AirPods (AVRCP) as /devices/virtual/input/input14

v8 Adds a dependency on another patchset from Johan, which can be found at
https://lore.kernel.org/lkml/20230322113318.17908-1-johan+linaro@kernel.org/
which I believe has already been accepted upstream, and removes the regulator
from the dts in my patchset, additionally, fix the alphabetization.

v7 Addresses commit message review nits by Paul, as  well as dts
changes requested by Johan. Additionally, the dt bindings now rely on
https://lore.kernel.org/lkml/20230316105800.18751-1-johan+linaro@kernel.org/ for
the bias-bus-hold option on sc8280xp.

v6 can be found at https://lore.kernel.org/all/20230316034759.73489-1-steev@kali.org/

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: sc8280xp-x13s: Add bluetooth

 .../net/bluetooth/qualcomm-bluetooth.yaml     | 17 +++++
 .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts    | 70 +++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc8280xp.dtsi        | 14 ++++
 drivers/bluetooth/btqca.c                     | 14 +++-
 drivers/bluetooth/btqca.h                     | 10 +++
 drivers/bluetooth/hci_qca.c                   | 57 +++++++++++----
 6 files changed, 167 insertions(+), 15 deletions(-)

Comments

patchwork-bot+bluetooth@kernel.org March 29, 2023, 7:50 p.m. UTC | #1
Hello:

This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Sun, 26 Mar 2023 18:38:08 -0500 you 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.
> 
> This patchset has 2 patchsets that it depends on, for the bindings so that they
> pass dtbs_check, as well as adding in the needed regulators to make bluetooth
> work.
> 
> [...]

Here is the summary with links:
  - [v8,1/4] dt-bindings: net: Add WCN6855 Bluetooth
    https://git.kernel.org/bluetooth/bluetooth-next/c/5c63b28b9107
  - [v8,2/4] Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855
    https://git.kernel.org/bluetooth/bluetooth-next/c/e5a3f2af0036
  - [v8,3/4] arm64: dts: qcom: sc8280xp: Define uart2
    (no matching commit)
  - [v8,4/4] arm64: dts: qcom: sc8280xp-x13s: Add bluetooth
    (no matching commit)

You are awesome, thank you!
Bjorn Andersson April 5, 2023, 4:09 a.m. UTC | #2
On Sun, 26 Mar 2023 18:38:08 -0500, 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.
> 
> This patchset has 2 patchsets that it depends on, for the bindings so that they
> pass dtbs_check, as well as adding in the needed regulators to make bluetooth
> work.
> 
> [...]

Applied, thanks!

[3/4] arm64: dts: qcom: sc8280xp: Define uart2
      commit: 9db28f297526f17c6575ec0eefc93a8b1642cff7
[4/4] arm64: dts: qcom: sc8280xp-x13s: Add bluetooth
      commit: 105560b4fca4df0d42dba6656105b5e4131d8ad3

Best regards,