Re: [PATCH] ath10k: Introduce a devicetree quirk to skip host cap QMI requests

3 messages, 3 authors, 2025-03-04 · open the first message on its own page

Re: [PATCH] ath10k: Introduce a devicetree quirk to skip host cap QMI requests

From: Kalle Valo <hidden>
Date: 2021-02-09 08:12:35

Bjorn Andersson [off-list ref] writes:
On Mon 08 Feb 11:21 CST 2021, Kalle Valo wrote:
quoted
Amit Pundir [off-list ref] writes:
quoted
Hi Kalle,

On Mon, 7 Dec 2020 at 22:25, Kalle Valo [off-list ref] wrote:
quoted
This is firmware version specific, right? There's also enum
ath10k_fw_features which is embedded within firmware-N.bin, we could add
a new flag there. But that means that a correct firmware-N.bin is needed
for each firmware version, not sure if that would work out. Just
throwing out ideas here.
Apologies for this late reply. I was out for a while.
No worries.
quoted
If by that (the firmware version) you mean "QC_IMAGE_VERSION_STRING",
then that may be a bit tricky. Pocophone F1 use the same firmware
family version (WLAN.HL.2.0.XXX), used by Dragonboard 845c (which has
Wi-Fi working upstream).
I'm meaning the ath10k firmware meta data we have in firmware-N.bin
(N=2,3,4...) file. A quick summary:

Every ath10k firmware release should have firmware-N.bin. The file is
created with this tool:

https://github.com/qca/qca-swiss-army-knife/blob/master/tools/scripts/ath10k/ath10k-fwencoder

firmware-N.bin contains various metadata, one of those being firmware
feature flags:

enum ath10k_fw_features {
	/* wmi_mgmt_rx_hdr contains extra RSSI information */
	ATH10K_FW_FEATURE_EXT_WMI_MGMT_RX = 0,

	/* Firmware from 10X branch. Deprecated, don't use in new code. */
	ATH10K_FW_FEATURE_WMI_10X = 1,

        [...]

So what you could is add a new flag enum ath10k_fw_features, create a
new firmware-N.bin for your device and enable the flag on the firmware
releases for your device only.

I don't know if this is usable, but one solution which came to my mind.
It sounds quite reasonable to pass this using firmawre-N.bin instead of
DT, however that would imply that we need to find firmware-N.bin in the
device-specific directory, where we keep the wlanmdsp.mbn as well - and
not under /lib/firmware/ath10k

For other devices (e.g. ADSP, modem or wlanmdsp.mbn) we're putting these
in e.g. /lib/firmware/qcom/LENOVO/81JL/ and specifies the location using
a firmware-name property in DT.
Ah, I didn't realise that.

Actually I would like to have ath10k in control[1] of QMI/rproc firmware
loading as the firmware releases have different constraints, like the
issue we are now discussing. Ideally firmware-N.bin would contain all
firmware files, for example wlanmdsp.mbn, and from the meta data
ath10k/ath11k would know what version of the firmware interface should
be used.

I remember we discussed this briefly a year or two ago and there was no
easy solution, but I really wish we could find one. More these kind of
firmware interface incompatibilities will most likely pop up, also in
ath11k, so it would be great to find a clean and easily maneagable
solution.

[1] With control I mean that ath10k/ath11k can choose which firmware
should be loaded

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

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

Re: [PATCH] ath10k: Introduce a devicetree quirk to skip host cap QMI requests

From: Amit Pundir <hidden>
Date: 2021-05-20 12:36:04

Hi,

Reviving this old thread again, to check if there are still any hopes
of landing this patch upstream.

Based on the feedback I have got so far, there are no easy way to skip
this part of the initialization at runtime. Bjorn and Kalle discussed
the possibility of creating device specific firmware-N.bin firmware
file but that would mean firmware-N.bin has to be loaded from the
device-specific directory along with wlanmdsp.bin. And ideally making
ath10k/ath11k in-charge of firmware loading, but there doesn't seem to
be a consensus on this either(?)

Regards,
Amit Pundir


On Tue, 9 Feb 2021 at 13:41, Kalle Valo [off-list ref] wrote:
Bjorn Andersson [off-list ref] writes:
quoted
On Mon 08 Feb 11:21 CST 2021, Kalle Valo wrote:
quoted
Amit Pundir [off-list ref] writes:
quoted
Hi Kalle,

On Mon, 7 Dec 2020 at 22:25, Kalle Valo [off-list ref] wrote:
quoted
This is firmware version specific, right? There's also enum
ath10k_fw_features which is embedded within firmware-N.bin, we could add
a new flag there. But that means that a correct firmware-N.bin is needed
for each firmware version, not sure if that would work out. Just
throwing out ideas here.
Apologies for this late reply. I was out for a while.
No worries.
quoted
If by that (the firmware version) you mean "QC_IMAGE_VERSION_STRING",
then that may be a bit tricky. Pocophone F1 use the same firmware
family version (WLAN.HL.2.0.XXX), used by Dragonboard 845c (which has
Wi-Fi working upstream).
I'm meaning the ath10k firmware meta data we have in firmware-N.bin
(N=2,3,4...) file. A quick summary:

Every ath10k firmware release should have firmware-N.bin. The file is
created with this tool:

https://github.com/qca/qca-swiss-army-knife/blob/master/tools/scripts/ath10k/ath10k-fwencoder

firmware-N.bin contains various metadata, one of those being firmware
feature flags:

enum ath10k_fw_features {
     /* wmi_mgmt_rx_hdr contains extra RSSI information */
     ATH10K_FW_FEATURE_EXT_WMI_MGMT_RX = 0,

     /* Firmware from 10X branch. Deprecated, don't use in new code. */
     ATH10K_FW_FEATURE_WMI_10X = 1,

        [...]

So what you could is add a new flag enum ath10k_fw_features, create a
new firmware-N.bin for your device and enable the flag on the firmware
releases for your device only.

I don't know if this is usable, but one solution which came to my mind.
It sounds quite reasonable to pass this using firmawre-N.bin instead of
DT, however that would imply that we need to find firmware-N.bin in the
device-specific directory, where we keep the wlanmdsp.mbn as well - and
not under /lib/firmware/ath10k

For other devices (e.g. ADSP, modem or wlanmdsp.mbn) we're putting these
in e.g. /lib/firmware/qcom/LENOVO/81JL/ and specifies the location using
a firmware-name property in DT.
Ah, I didn't realise that.

Actually I would like to have ath10k in control[1] of QMI/rproc firmware
loading as the firmware releases have different constraints, like the
issue we are now discussing. Ideally firmware-N.bin would contain all
firmware files, for example wlanmdsp.mbn, and from the meta data
ath10k/ath11k would know what version of the firmware interface should
be used.

I remember we discussed this briefly a year or two ago and there was no
easy solution, but I really wish we could find one. More these kind of
firmware interface incompatibilities will most likely pop up, also in
ath11k, so it would be great to find a clean and easily maneagable
solution.

[1] With control I mean that ath10k/ath11k can choose which firmware
should be loaded

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

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

Re: [PATCH] ath10k: Introduce a devicetree quirk to skip host cap QMI requests

From: David Heidelberg <david@ixit.cz>
Date: 2025-03-04 18:50:01

Kind reminder.

This workaround is still used by sdm845 downstream.

Thank you
David
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help