* [PATCH v3 1/3] dt-bindings: wireless: ath10k: Introduce quirk to skip host cap QMI requests
2026-03-25 16:41 [PATCH v3 0/3] ath10k: Introduce a devicetree quirk to skip host cap QMI requests David Heidelberg via B4 Relay
@ 2026-03-25 16:41 ` David Heidelberg via B4 Relay
2026-03-25 16:41 ` [PATCH v3 2/3] ath10k: Introduce a device-tree " David Heidelberg via B4 Relay
2026-03-25 16:41 ` [PATCH v3 3/3] arm64: dts: qcom: sdm845-xiaomi-beryllium: Enable ath10k host-cap skip quirk David Heidelberg via B4 Relay
2 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg via B4 Relay @ 2026-03-25 16:41 UTC (permalink / raw)
To: Johannes Berg, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jeff Johnson, Bjorn Andersson, Konrad Dybcio, Paul Sajna
Cc: Amit Pundir, linux-wireless, devicetree, ath10k, linux-kernel,
linux-arm-msm, phone-devel, David Heidelberg
From: Amit Pundir <amit.pundir@linaro.org>
Introducing this quirk to skip host capability QMI request for the firmware
versions which do not support this feature.
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml
index f2440d39b7ebc..5120b3589ab57 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml
@@ -171,6 +171,12 @@ properties:
Quirk specifying that the firmware expects the 8bit version
of the host capability QMI request
+ qcom,snoc-host-cap-skip-quirk:
+ type: boolean
+ description:
+ Quirk specifying that the firmware wants to skip the host
+ capability QMI request
+
qcom,xo-cal-data:
$ref: /schemas/types.yaml#/definitions/uint32
description:
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v3 2/3] ath10k: Introduce a device-tree quirk to skip host cap QMI requests
2026-03-25 16:41 [PATCH v3 0/3] ath10k: Introduce a devicetree quirk to skip host cap QMI requests David Heidelberg via B4 Relay
2026-03-25 16:41 ` [PATCH v3 1/3] dt-bindings: wireless: ath10k: Introduce " David Heidelberg via B4 Relay
@ 2026-03-25 16:41 ` David Heidelberg via B4 Relay
2026-03-25 17:15 ` Dmitry Baryshkov
2026-03-25 16:41 ` [PATCH v3 3/3] arm64: dts: qcom: sdm845-xiaomi-beryllium: Enable ath10k host-cap skip quirk David Heidelberg via B4 Relay
2 siblings, 1 reply; 6+ messages in thread
From: David Heidelberg via B4 Relay @ 2026-03-25 16:41 UTC (permalink / raw)
To: Johannes Berg, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jeff Johnson, Bjorn Andersson, Konrad Dybcio, Paul Sajna
Cc: Amit Pundir, linux-wireless, devicetree, ath10k, linux-kernel,
linux-arm-msm, phone-devel, David Heidelberg
From: Amit Pundir <amit.pundir@linaro.org>
There are firmware versions which do not support host capability QMI
request. We suspect either the host cap is not implemented or there may
be firmware specific issues, but apparently there seem to be a generation
of firmware that has this particular behavior.
For example, firmware build on Xiaomi Poco F1 (sdm845) phone:
"QC_IMAGE_VERSION_STRING=WLAN.HL.2.0.c3-00257-QCAHLSWMTPLZ-1"
If we do not skip the host cap QMI request on Poco F1, then we get a
QMI_ERR_MALFORMED_MSG_V01 error message before loading the firmware in the
ath10k_qmi_host_cap_send_sync(). This error message is not fatal to the
firmware nor to the ath10k driver and we can still bring up the WiFi
services successfully if we just ignore it.
Hence introducing this device-tree quirk to skip host capability
QMI request for the devices with firmware versions which do not support
this feature.
Suggested-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
---
drivers/net/wireless/ath/ath10k/qmi.c | 13 ++++++++++---
drivers/net/wireless/ath/ath10k/snoc.c | 3 +++
drivers/net/wireless/ath/ath10k/snoc.h | 1 +
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c
index eebd78e7ff6bc..e7f90fd9e9b83 100644
--- a/drivers/net/wireless/ath/ath10k/qmi.c
+++ b/drivers/net/wireless/ath/ath10k/qmi.c
@@ -808,6 +808,7 @@ ath10k_qmi_ind_register_send_sync_msg(struct ath10k_qmi *qmi)
static void ath10k_qmi_event_server_arrive(struct ath10k_qmi *qmi)
{
struct ath10k *ar = qmi->ar;
+ struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar);
int ret;
ret = ath10k_qmi_ind_register_send_sync_msg(qmi);
@@ -819,9 +820,15 @@ static void ath10k_qmi_event_server_arrive(struct ath10k_qmi *qmi)
return;
}
- ret = ath10k_qmi_host_cap_send_sync(qmi);
- if (ret)
- return;
+ /*
+ * Skip the host capability request for the firmware versions which
+ * do not support this feature.
+ */
+ if (!test_bit(ATH10K_SNOC_FLAG_SKIP_HOST_CAP_QUIRK, &ar_snoc->flags)) {
+ ret = ath10k_qmi_host_cap_send_sync(qmi);
+ if (ret)
+ return;
+ }
ret = ath10k_qmi_msa_mem_info_send_sync_msg(qmi);
if (ret)
diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c
index f72f236fb9eb3..3106502275781 100644
--- a/drivers/net/wireless/ath/ath10k/snoc.c
+++ b/drivers/net/wireless/ath/ath10k/snoc.c
@@ -1362,6 +1362,9 @@ static void ath10k_snoc_quirks_init(struct ath10k *ar)
if (of_property_read_bool(dev->of_node, "qcom,snoc-host-cap-8bit-quirk"))
set_bit(ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK, &ar_snoc->flags);
+
+ if (of_property_read_bool(dev->of_node, "qcom,snoc-host-cap-skip-quirk"))
+ set_bit(ATH10K_SNOC_FLAG_SKIP_HOST_CAP_QUIRK, &ar_snoc->flags);
}
int ath10k_snoc_fw_indication(struct ath10k *ar, u64 type)
diff --git a/drivers/net/wireless/ath/ath10k/snoc.h b/drivers/net/wireless/ath/ath10k/snoc.h
index 1ecae34687c21..46574fd8f84ee 100644
--- a/drivers/net/wireless/ath/ath10k/snoc.h
+++ b/drivers/net/wireless/ath/ath10k/snoc.h
@@ -51,6 +51,7 @@ enum ath10k_snoc_flags {
ATH10K_SNOC_FLAG_MODEM_STOPPED,
ATH10K_SNOC_FLAG_RECOVERY,
ATH10K_SNOC_FLAG_8BIT_HOST_CAP_QUIRK,
+ ATH10K_SNOC_FLAG_SKIP_HOST_CAP_QUIRK,
};
struct clk_bulk_data;
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3 2/3] ath10k: Introduce a device-tree quirk to skip host cap QMI requests
2026-03-25 16:41 ` [PATCH v3 2/3] ath10k: Introduce a device-tree " David Heidelberg via B4 Relay
@ 2026-03-25 17:15 ` Dmitry Baryshkov
2026-03-25 17:39 ` David Heidelberg
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2026-03-25 17:15 UTC (permalink / raw)
To: david
Cc: Johannes Berg, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jeff Johnson, Bjorn Andersson, Konrad Dybcio, Paul Sajna,
Amit Pundir, linux-wireless, devicetree, ath10k, linux-kernel,
linux-arm-msm, phone-devel
On Wed, Mar 25, 2026 at 05:41:13PM +0100, David Heidelberg via B4 Relay wrote:
> From: Amit Pundir <amit.pundir@linaro.org>
>
> There are firmware versions which do not support host capability QMI
> request. We suspect either the host cap is not implemented or there may
> be firmware specific issues, but apparently there seem to be a generation
> of firmware that has this particular behavior.
It needs to be explicit that this happens _before_ firmware-N.bin and
board-M.bin loading. As such, you can't add a quirk to the firmware.bin
(a standard way to handle firmware issues).
> For example, firmware build on Xiaomi Poco F1 (sdm845) phone:
> "QC_IMAGE_VERSION_STRING=WLAN.HL.2.0.c3-00257-QCAHLSWMTPLZ-1"
>
> If we do not skip the host cap QMI request on Poco F1, then we get a
> QMI_ERR_MALFORMED_MSG_V01 error message before loading the firmware in the
> ath10k_qmi_host_cap_send_sync(). This error message is not fatal to the
> firmware nor to the ath10k driver and we can still bring up the WiFi
> services successfully if we just ignore it.
>
> Hence introducing this device-tree quirk to skip host capability
> QMI request for the devices with firmware versions which do not support
> this feature.
>
> Suggested-by: Bjorn Andersson <andersson@kernel.org>
> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
You are sending the patch, but it misses your SoB.
> ---
> drivers/net/wireless/ath/ath10k/qmi.c | 13 ++++++++++---
> drivers/net/wireless/ath/ath10k/snoc.c | 3 +++
> drivers/net/wireless/ath/ath10k/snoc.h | 1 +
> 3 files changed, 14 insertions(+), 3 deletions(-)
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/3] ath10k: Introduce a device-tree quirk to skip host cap QMI requests
2026-03-25 17:15 ` Dmitry Baryshkov
@ 2026-03-25 17:39 ` David Heidelberg
0 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg @ 2026-03-25 17:39 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Johannes Berg, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jeff Johnson, Bjorn Andersson, Konrad Dybcio, Paul Sajna,
Amit Pundir, linux-wireless, devicetree, ath10k, linux-kernel,
linux-arm-msm, phone-devel
On 25/03/2026 18:15, Dmitry Baryshkov wrote:
> On Wed, Mar 25, 2026 at 05:41:13PM +0100, David Heidelberg via B4 Relay wrote:
>> From: Amit Pundir <amit.pundir@linaro.org>
>>
>> There are firmware versions which do not support host capability QMI
>> request. We suspect either the host cap is not implemented or there may
>> be firmware specific issues, but apparently there seem to be a generation
>> of firmware that has this particular behavior.
>
> It needs to be explicit that this happens _before_ firmware-N.bin and
> board-M.bin loading. As such, you can't add a quirk to the firmware.bin
> (a standard way to handle firmware issues).
Ok, let me send with updated desc :)
>
>> For example, firmware build on Xiaomi Poco F1 (sdm845) phone:
>> "QC_IMAGE_VERSION_STRING=WLAN.HL.2.0.c3-00257-QCAHLSWMTPLZ-1"
>>
>> If we do not skip the host cap QMI request on Poco F1, then we get a
>> QMI_ERR_MALFORMED_MSG_V01 error message before loading the firmware in the
>> ath10k_qmi_host_cap_send_sync(). This error message is not fatal to the
>> firmware nor to the ath10k driver and we can still bring up the WiFi
>> services successfully if we just ignore it.
>>
>> Hence introducing this device-tree quirk to skip host capability
>> QMI request for the devices with firmware versions which do not support
>> this feature.
>>
>> Suggested-by: Bjorn Andersson <andersson@kernel.org>
>> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
>
> You are sending the patch, but it misses your SoB.
Oh, sorry bout that.
checkpatch.pl could spot this kind of an issue :P
David>
>> ---
>> drivers/net/wireless/ath/ath10k/qmi.c | 13 ++++++++++---
>> drivers/net/wireless/ath/ath10k/snoc.c | 3 +++
>> drivers/net/wireless/ath/ath10k/snoc.h | 1 +
>> 3 files changed, 14 insertions(+), 3 deletions(-)
>
--
David Heidelberg
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 3/3] arm64: dts: qcom: sdm845-xiaomi-beryllium: Enable ath10k host-cap skip quirk
2026-03-25 16:41 [PATCH v3 0/3] ath10k: Introduce a devicetree quirk to skip host cap QMI requests David Heidelberg via B4 Relay
2026-03-25 16:41 ` [PATCH v3 1/3] dt-bindings: wireless: ath10k: Introduce " David Heidelberg via B4 Relay
2026-03-25 16:41 ` [PATCH v3 2/3] ath10k: Introduce a device-tree " David Heidelberg via B4 Relay
@ 2026-03-25 16:41 ` David Heidelberg via B4 Relay
2 siblings, 0 replies; 6+ messages in thread
From: David Heidelberg via B4 Relay @ 2026-03-25 16:41 UTC (permalink / raw)
To: Johannes Berg, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Jeff Johnson, Bjorn Andersson, Konrad Dybcio, Paul Sajna
Cc: Amit Pundir, linux-wireless, devicetree, ath10k, linux-kernel,
linux-arm-msm, phone-devel, David Heidelberg
From: Amit Pundir <amit.pundir@linaro.org>
The WiFi firmware used on Xiaomi PocoPhone F1 (beryllium) phone
doesn't support the host-capability QMI request, hence enable
the skip quirk for this device.
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
index 1298485c42142..950bbcc3bf91f 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium-common.dtsi
@@ -661,5 +661,6 @@ &wifi {
vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
qcom,calibration-variant = "xiaomi_beryllium";
+ qcom,snoc-host-cap-skip-quirk;
};
--
2.53.0
^ permalink raw reply related [flat|nested] 6+ messages in thread