question regarding qca2066 and qca206x (Steam Deck OLED/Galileo) on upstream kernels

Kalle Valo kvalo at kernel.org
Mon May 20 03:21:50 PDT 2024


Matthew Schwartz <njtransit215 at gmail.com> writes:

> Hello,
>
> I've been tinkering with my Steam Deck OLED (Galileo revision) quite a
> bit since release, and I think I am finally running into some trouble
> that I am unable to resolve regarding the use of the Galileo's
> ath11k/qca2066 driver alongside other devices on an upstream Linux
> kernel, specifically Linux 6.9.0 and later.
>
> When I try to use the upstream ath11k driver with my OLED Deck, it
> ends up failing a direct firmware load for ath11k/QCA2066/amss.bin.
> The upstream driver has never worked (to the best of my knowledge at
> least), so that is not a regression. I've attached the dmesg from this
> failure just as a reference. We used to get around this on kernels 6.6
> -> 6.8 by adding in a separate QCA206X entry via kernel patch:
> https://github.com/Nobara-Project/rpm-sources/blob/main/baseos/kernel/6.8.7/steamdeck-oled-wifi.patch

Ok, so that patch seems to add QCA2066 hw2.1 and WMI_COEX_CONFIG_CMDID
support, but it also does some smaller changes like static_window_map
and hacks. Unfortunately there's no Signed-off-by which makes it
difficult to get that code to Linux.

We already have QCA2066 hw2.1 support in upstream so that part of the
patch should not be needed anymore. WMI_COEX_CONFIG_CMDID is not
supported in upstream yet but that should not matter for initial
bringup. I would assume you need it later once you start using Wi-Fi and
BT together and want to optimise them working together.

> along with the firmware from
> https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/linux-firmware-neptune-jupiter.20231113.1-1-any.pkg.tar.zst

Our recommendation is to use the firmware from our repositories as there
are no guarentees that other firmware releases work with kernel.org
driver. So try to use this one:

https://git.codelinaro.org/clo/ath-firmware/ath11k-firmware

The board file handling might be a challenge though as I don't know if
we have the board file for Steam Deck in our board-2.bin, most likely
not.

> but I have not been able to rebase this onto Kernel 6.9 without a host
> of compile failures in ath11k, which are unfortunately a bit beyond my
> own knowledge level.
>
> The only way I've managed to get wifi working on the kernel has been
> to use this one commit from Valve
> https://gitlab.com/evlaV/linux-integration/-/commit/15dc5e42cac7240104b42443df8f4091721da5b1,

Ok, so this just modifies the firmware location from QCA2066 to QCA206X.
You could do same by just having a symlink in /lib/firmware/ath11k/.

> along with the QCA206X firmware folder on top of upstream Linux 6.9.0.
> Please correct me if I'm wrong here, but this is marked as
> [NOT-FOR-UPSTREAM] because it will break devices using the proper
> upstream ath11k firmware, right? Do you know if a solution is being
> worked on to fix the upstream drivers for compatibility with the
> Galileo specific hardware chip, or is this workaround going to be the
> only way to get working wifi on new kernel releases?

For me a major problem here is that there are several hacks and another
firmware release used. My recommendation is to take a step back and do
one thing at a time, for example something like this:

1. Install linux 6.9 without any modifications.

2. Remove the old ath11k firmware.

3. Install new firmware from
   https://git.codelinaro.org/clo/ath-firmware/ath11k-firmware

4. Most likely our ath11k-firmware does not contain the correct board
   file so that might need to be copied from the old firmware package.

With good luck you will get the driver initialised so that you can run
'ip link set wlan0 up' and then 'iw wlan0 scan'. If not, please report
back.

Please also read our instructions what to include in bug reports:

https://wireless.wiki.kernel.org/en/users/drivers/ath11k/bugreport

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches



More information about the ath11k mailing list