* [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible
@ 2026-01-21 9:50 Miaoqing Pan
2026-01-21 9:50 ` [PATCH v4 ath-current 1/2] " Miaoqing Pan
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Miaoqing Pan @ 2026-01-21 9:50 UTC (permalink / raw)
To: jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski,
krzk, Miaoqing Pan
The 'firmware-name' property was introduced to allow end-users and
integrators to select use-case-specific firmware for the WCN6855.
But for M.2 WLAN chips, there is no suitable DTS node to specify
the 'firmware-name' property. In addition, assigning firmware for
the M.2 PCIe interface causes chips that do not use use-case-specific
firmware to fail. Therefore, abandoning the approach of specifying
firmware in DTS. As an alternative, propose a static lookup table
mapping device compatible to firmware names.
---
v2:
- Drops `firmware-name` from completely.
- Updates the commit message to clearly state that the property is
obsolete and the change is ABI-breaking but safe for upstream.
v3:
- Deprecate 'firmware-name' property instead of obsolete.
- Keep the ABI backwards compatible.
v4:
- Use of_machine_is_compatible() to simplify the code.
- Add back Acked-by tag.
---
Miaoqing Pan (2):
wifi: ath11k: add usecase firmware handling based on device compatible
dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name'
property
.../net/wireless/qcom,ath11k-pci.yaml | 1 +
drivers/net/wireless/ath/ath11k/core.c | 27 +++++++++++++++++++
drivers/net/wireless/ath/ath11k/core.h | 4 +++
3 files changed, 32 insertions(+)
base-commit: d8e1f4a193101a72235416f189b01131a57e26e9
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 ath-current 1/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-21 9:50 [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Miaoqing Pan
@ 2026-01-21 9:50 ` Miaoqing Pan
2026-01-28 15:42 ` Vasanthakumar Thiagarajan
2026-01-29 2:10 ` Baochen Qiang
2026-01-21 9:50 ` [PATCH v4 ath-current 2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property Miaoqing Pan
` (2 subsequent siblings)
3 siblings, 2 replies; 11+ messages in thread
From: Miaoqing Pan @ 2026-01-21 9:50 UTC (permalink / raw)
To: jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski,
krzk, Miaoqing Pan
For M.2 WLAN chips, there is no suitable DTS node to specify the
firmware-name property. In addition, assigning firmware for the
M.2 PCIe interface causes chips that do not use usecase specific
firmware to fail. Therefore, abandoning the approach of specifying
firmware in DTS. As an alternative, propose a static lookup table
mapping device compatible to firmware names. Currently, only WCN6855
HW2.1 requires this.
However, support for the firmware-name property is retained to keep
the ABI backwards compatible.
For details on usecase specific firmware, see:
https://lore.kernel.org/all/20250522013444.1301330-3-miaoqing.pan@oss.qualcomm.com/.
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-04685-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
Fixes: edbbc647c4f3 ("wifi: ath11k: support usercase-specific firmware overrides")
Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
---
drivers/net/wireless/ath/ath11k/core.c | 27 ++++++++++++++++++++++++++
drivers/net/wireless/ath/ath11k/core.h | 4 ++++
2 files changed, 31 insertions(+)
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index de84906d1b27..3f6f4db5b7ee 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -1044,6 +1044,33 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
{}
};
+static const struct __ath11k_core_usecase_firmware_table {
+ u32 hw_rev;
+ const char *compatible;
+ const char *firmware_name;
+} ath11k_core_usecase_firmware_table[] = {
+ { ATH11K_HW_WCN6855_HW21, "qcom,lemans-evk", "nfa765"},
+ { ATH11K_HW_WCN6855_HW21, "qcom,monaco-evk", "nfa765"},
+ { ATH11K_HW_WCN6855_HW21, "qcom,hamoa-iot-evk", "nfa765"},
+ { /* Sentinel */ }
+};
+
+const char *ath11k_core_get_usecase_firmware(struct ath11k_base *ab)
+{
+ const struct __ath11k_core_usecase_firmware_table *entry = NULL;
+
+ entry = ath11k_core_usecase_firmware_table;
+ while (entry->compatible) {
+ if (ab->hw_rev == entry->hw_rev &&
+ of_machine_is_compatible(entry->compatible))
+ return entry->firmware_name;
+ entry++;
+ }
+
+ return NULL;
+}
+EXPORT_SYMBOL(ath11k_core_get_usecase_firmware);
+
void ath11k_fw_stats_pdevs_free(struct list_head *head)
{
struct ath11k_fw_stats_pdev *i, *tmp;
diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 3f41e6569a78..a0d725923ef2 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -1292,6 +1292,7 @@ bool ath11k_core_coldboot_cal_support(struct ath11k_base *ab);
const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab,
const char *filename);
+const char *ath11k_core_get_usecase_firmware(struct ath11k_base *ab);
static inline const char *ath11k_scan_state_str(enum ath11k_scan_state state)
{
@@ -1346,6 +1347,9 @@ static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab,
of_property_read_string(ab->dev->of_node, "firmware-name", &fw_name);
+ if (!fw_name)
+ fw_name = ath11k_core_get_usecase_firmware(ab);
+
if (fw_name && strncmp(filename, "board", 5))
snprintf(buf, buf_len, "%s/%s/%s/%s", ATH11K_FW_DIR,
ab->hw_params.fw.dir, fw_name, filename);
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 ath-current 2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property
2026-01-21 9:50 [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Miaoqing Pan
2026-01-21 9:50 ` [PATCH v4 ath-current 1/2] " Miaoqing Pan
@ 2026-01-21 9:50 ` Miaoqing Pan
2026-01-28 8:00 ` Krzysztof Kozlowski
2026-01-27 17:31 ` [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Jeff Johnson
2026-01-30 15:15 ` Jeff Johnson
3 siblings, 1 reply; 11+ messages in thread
From: Miaoqing Pan @ 2026-01-21 9:50 UTC (permalink / raw)
To: jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski,
krzk, Miaoqing Pan
The firmware-name property was originally introduced to allow end-users
and integrators to select use-case-specific firmware for the WCN6855.
However, specifying firmware for an M.2 WLAN module in the Device Tree
is not appropriate. Instead, this functionality will be handled within
the ath11k driver. Therefore, the firmware-name property is now
deprecated.
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
---
.../devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml
index e34d42a30192..0162e365798b 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml
@@ -37,6 +37,7 @@ properties:
firmware-name:
maxItems: 1
+ deprecated: true
description:
If present, a board or platform specific string used to lookup
usecase-specific firmware files for the device.
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-21 9:50 [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Miaoqing Pan
2026-01-21 9:50 ` [PATCH v4 ath-current 1/2] " Miaoqing Pan
2026-01-21 9:50 ` [PATCH v4 ath-current 2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property Miaoqing Pan
@ 2026-01-27 17:31 ` Jeff Johnson
2026-01-28 8:01 ` Krzysztof Kozlowski
2026-01-30 15:15 ` Jeff Johnson
3 siblings, 1 reply; 11+ messages in thread
From: Jeff Johnson @ 2026-01-27 17:31 UTC (permalink / raw)
To: Miaoqing Pan, jjohnson, johannes, robh, krzk+dt, conor+dt, krzk
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski
On 1/21/2026 1:50 AM, Miaoqing Pan wrote:
> The 'firmware-name' property was introduced to allow end-users and
> integrators to select use-case-specific firmware for the WCN6855.
> But for M.2 WLAN chips, there is no suitable DTS node to specify
> the 'firmware-name' property. In addition, assigning firmware for
> the M.2 PCIe interface causes chips that do not use use-case-specific
> firmware to fail. Therefore, abandoning the approach of specifying
> firmware in DTS. As an alternative, propose a static lookup table
> mapping device compatible to firmware names.
>
> ---
> v2:
> - Drops `firmware-name` from completely.
> - Updates the commit message to clearly state that the property is
> obsolete and the change is ABI-breaking but safe for upstream.
> v3:
> - Deprecate 'firmware-name' property instead of obsolete.
> - Keep the ABI backwards compatible.
> v4:
> - Use of_machine_is_compatible() to simplify the code.
> - Add back Acked-by tag.
> ---
>
> Miaoqing Pan (2):
> wifi: ath11k: add usecase firmware handling based on device compatible
> dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name'
> property
>
> .../net/wireless/qcom,ath11k-pci.yaml | 1 +
> drivers/net/wireless/ath/ath11k/core.c | 27 +++++++++++++++++++
> drivers/net/wireless/ath/ath11k/core.h | 4 +++
> 3 files changed, 32 insertions(+)
>
>
> base-commit: d8e1f4a193101a72235416f189b01131a57e26e9
Krzysztof,
Since you previously NAKed this series, can you confirm that your review
comments have been addressed?
Thanks!
/jeff
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property
2026-01-21 9:50 ` [PATCH v4 ath-current 2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property Miaoqing Pan
@ 2026-01-28 8:00 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-28 8:00 UTC (permalink / raw)
To: Miaoqing Pan, jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski
On 21/01/2026 10:50, Miaoqing Pan wrote:
> The firmware-name property was originally introduced to allow end-users
> and integrators to select use-case-specific firmware for the WCN6855.
> However, specifying firmware for an M.2 WLAN module in the Device Tree
> is not appropriate. Instead, this functionality will be handled within
> the ath11k driver. Therefore, the firmware-name property is now
> deprecated.
>
> Acked-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
> ---
> .../devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml | 1 +
> 1 file changed, 1 insertion(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-27 17:31 ` [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Jeff Johnson
@ 2026-01-28 8:01 ` Krzysztof Kozlowski
2026-01-28 8:06 ` Miaoqing Pan
2026-01-28 15:30 ` Jeff Johnson
0 siblings, 2 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-28 8:01 UTC (permalink / raw)
To: Jeff Johnson, Miaoqing Pan, jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski
On 27/01/2026 18:31, Jeff Johnson wrote:
> On 1/21/2026 1:50 AM, Miaoqing Pan wrote:
>> The 'firmware-name' property was introduced to allow end-users and
>> integrators to select use-case-specific firmware for the WCN6855.
>> But for M.2 WLAN chips, there is no suitable DTS node to specify
>> the 'firmware-name' property. In addition, assigning firmware for
>> the M.2 PCIe interface causes chips that do not use use-case-specific
>> firmware to fail. Therefore, abandoning the approach of specifying
>> firmware in DTS. As an alternative, propose a static lookup table
>> mapping device compatible to firmware names.
>>
>> ---
>> v2:
>> - Drops `firmware-name` from completely.
>> - Updates the commit message to clearly state that the property is
>> obsolete and the change is ABI-breaking but safe for upstream.
>> v3:
>> - Deprecate 'firmware-name' property instead of obsolete.
>> - Keep the ABI backwards compatible.
>> v4:
>> - Use of_machine_is_compatible() to simplify the code.
>> - Add back Acked-by tag.
>> ---
>>
>> Miaoqing Pan (2):
>> wifi: ath11k: add usecase firmware handling based on device compatible
>> dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name'
>> property
>>
>> .../net/wireless/qcom,ath11k-pci.yaml | 1 +
>> drivers/net/wireless/ath/ath11k/core.c | 27 +++++++++++++++++++
>> drivers/net/wireless/ath/ath11k/core.h | 4 +++
>> 3 files changed, 32 insertions(+)
>>
>>
>> base-commit: d8e1f4a193101a72235416f189b01131a57e26e9
>
> Krzysztof,
> Since you previously NAKed this series, can you confirm that your review
> comments have been addressed?
Binding looks fine, but I did not check the driver.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-28 8:01 ` Krzysztof Kozlowski
@ 2026-01-28 8:06 ` Miaoqing Pan
2026-01-28 15:30 ` Jeff Johnson
1 sibling, 0 replies; 11+ messages in thread
From: Miaoqing Pan @ 2026-01-28 8:06 UTC (permalink / raw)
To: Krzysztof Kozlowski, Jeff Johnson, jjohnson, johannes, robh,
krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski
On 1/28/2026 4:01 PM, Krzysztof Kozlowski wrote:
> On 27/01/2026 18:31, Jeff Johnson wrote:
>> On 1/21/2026 1:50 AM, Miaoqing Pan wrote:
>>> The 'firmware-name' property was introduced to allow end-users and
>>> integrators to select use-case-specific firmware for the WCN6855.
>>> But for M.2 WLAN chips, there is no suitable DTS node to specify
>>> the 'firmware-name' property. In addition, assigning firmware for
>>> the M.2 PCIe interface causes chips that do not use use-case-specific
>>> firmware to fail. Therefore, abandoning the approach of specifying
>>> firmware in DTS. As an alternative, propose a static lookup table
>>> mapping device compatible to firmware names.
>>>
>>> ---
>>> v2:
>>> - Drops `firmware-name` from completely.
>>> - Updates the commit message to clearly state that the property is
>>> obsolete and the change is ABI-breaking but safe for upstream.
>>> v3:
>>> - Deprecate 'firmware-name' property instead of obsolete.
>>> - Keep the ABI backwards compatible.
>>> v4:
>>> - Use of_machine_is_compatible() to simplify the code.
>>> - Add back Acked-by tag.
>>> ---
>>>
>>> Miaoqing Pan (2):
>>> wifi: ath11k: add usecase firmware handling based on device compatible
>>> dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name'
>>> property
>>>
>>> .../net/wireless/qcom,ath11k-pci.yaml | 1 +
>>> drivers/net/wireless/ath/ath11k/core.c | 27 +++++++++++++++++++
>>> drivers/net/wireless/ath/ath11k/core.h | 4 +++
>>> 3 files changed, 32 insertions(+)
>>>
>>>
>>> base-commit: d8e1f4a193101a72235416f189b01131a57e26e9
>>
>> Krzysztof,
>> Since you previously NAKed this series, can you confirm that your review
>> comments have been addressed?
>
>
> Binding looks fine, but I did not check the driver.
>
> Best regards,
> Krzysztof
The driver has retained compatibility with the firmware-name.
static inline const char *ath11k_scan_state_str(enum ath11k_scan_state
state)
{
@@ -1346,6 +1347,9 @@ static inline void
ath11k_core_create_firmware_path(struct ath11k_base *ab,
of_property_read_string(ab->dev->of_node, "firmware-name", &fw_name);
//here
+ if (!fw_name)
+ fw_name = ath11k_core_get_usecase_firmware(ab);
+
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-28 8:01 ` Krzysztof Kozlowski
2026-01-28 8:06 ` Miaoqing Pan
@ 2026-01-28 15:30 ` Jeff Johnson
1 sibling, 0 replies; 11+ messages in thread
From: Jeff Johnson @ 2026-01-28 15:30 UTC (permalink / raw)
To: Krzysztof Kozlowski, Miaoqing Pan, jjohnson, johannes, robh,
krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski
On 1/28/2026 12:01 AM, Krzysztof Kozlowski wrote:
> On 27/01/2026 18:31, Jeff Johnson wrote:
>> On 1/21/2026 1:50 AM, Miaoqing Pan wrote:
>>> The 'firmware-name' property was introduced to allow end-users and
>>> integrators to select use-case-specific firmware for the WCN6855.
>>> But for M.2 WLAN chips, there is no suitable DTS node to specify
>>> the 'firmware-name' property. In addition, assigning firmware for
>>> the M.2 PCIe interface causes chips that do not use use-case-specific
>>> firmware to fail. Therefore, abandoning the approach of specifying
>>> firmware in DTS. As an alternative, propose a static lookup table
>>> mapping device compatible to firmware names.
>>>
>>> ---
>>> v2:
>>> - Drops `firmware-name` from completely.
>>> - Updates the commit message to clearly state that the property is
>>> obsolete and the change is ABI-breaking but safe for upstream.
>>> v3:
>>> - Deprecate 'firmware-name' property instead of obsolete.
>>> - Keep the ABI backwards compatible.
>>> v4:
>>> - Use of_machine_is_compatible() to simplify the code.
>>> - Add back Acked-by tag.
>>> ---
>>>
>>> Miaoqing Pan (2):
>>> wifi: ath11k: add usecase firmware handling based on device compatible
>>> dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name'
>>> property
>>>
>>> .../net/wireless/qcom,ath11k-pci.yaml | 1 +
>>> drivers/net/wireless/ath/ath11k/core.c | 27 +++++++++++++++++++
>>> drivers/net/wireless/ath/ath11k/core.h | 4 +++
>>> 3 files changed, 32 insertions(+)
>>>
>>>
>>> base-commit: d8e1f4a193101a72235416f189b01131a57e26e9
>>
>> Krzysztof,
>> Since you previously NAKed this series, can you confirm that your review
>> comments have been addressed?
>
>
> Binding looks fine, but I did not check the driver.
Thanks Krzysztof for your re-review.
Although tagged for ath-current, we are too far in the v6.19 release cycle for
this, so I'll be taking it through ath-next for the v7.0 merge window.
/jeff
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 1/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-21 9:50 ` [PATCH v4 ath-current 1/2] " Miaoqing Pan
@ 2026-01-28 15:42 ` Vasanthakumar Thiagarajan
2026-01-29 2:10 ` Baochen Qiang
1 sibling, 0 replies; 11+ messages in thread
From: Vasanthakumar Thiagarajan @ 2026-01-28 15:42 UTC (permalink / raw)
To: Miaoqing Pan, jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski, krzk
On 1/21/2026 3:20 PM, Miaoqing Pan wrote:
> For M.2 WLAN chips, there is no suitable DTS node to specify the
> firmware-name property. In addition, assigning firmware for the
> M.2 PCIe interface causes chips that do not use usecase specific
> firmware to fail. Therefore, abandoning the approach of specifying
> firmware in DTS. As an alternative, propose a static lookup table
> mapping device compatible to firmware names. Currently, only WCN6855
> HW2.1 requires this.
>
> However, support for the firmware-name property is retained to keep
> the ABI backwards compatible.
>
> For details on usecase specific firmware, see:
> https://lore.kernel.org/all/20250522013444.1301330-3-miaoqing.pan@oss.qualcomm.com/.
>
> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-04685-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
>
> Fixes: edbbc647c4f3 ("wifi: ath11k: support usercase-specific firmware overrides")
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 1/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-21 9:50 ` [PATCH v4 ath-current 1/2] " Miaoqing Pan
2026-01-28 15:42 ` Vasanthakumar Thiagarajan
@ 2026-01-29 2:10 ` Baochen Qiang
1 sibling, 0 replies; 11+ messages in thread
From: Baochen Qiang @ 2026-01-29 2:10 UTC (permalink / raw)
To: Miaoqing Pan, jjohnson, johannes, robh, krzk+dt, conor+dt
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski, krzk
On 1/21/2026 5:50 PM, Miaoqing Pan wrote:
> For M.2 WLAN chips, there is no suitable DTS node to specify the
> firmware-name property. In addition, assigning firmware for the
> M.2 PCIe interface causes chips that do not use usecase specific
> firmware to fail. Therefore, abandoning the approach of specifying
> firmware in DTS. As an alternative, propose a static lookup table
> mapping device compatible to firmware names. Currently, only WCN6855
> HW2.1 requires this.
>
> However, support for the firmware-name property is retained to keep
> the ABI backwards compatible.
>
> For details on usecase specific firmware, see:
> https://lore.kernel.org/all/20250522013444.1301330-3-miaoqing.pan@oss.qualcomm.com/.
>
> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-04685-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
>
> Fixes: edbbc647c4f3 ("wifi: ath11k: support usercase-specific firmware overrides")
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
> ---
> drivers/net/wireless/ath/ath11k/core.c | 27 ++++++++++++++++++++++++++
> drivers/net/wireless/ath/ath11k/core.h | 4 ++++
> 2 files changed, 31 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> index de84906d1b27..3f6f4db5b7ee 100644
> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -1044,6 +1044,33 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> {}
> };
>
> +static const struct __ath11k_core_usecase_firmware_table {
> + u32 hw_rev;
> + const char *compatible;
> + const char *firmware_name;
> +} ath11k_core_usecase_firmware_table[] = {
> + { ATH11K_HW_WCN6855_HW21, "qcom,lemans-evk", "nfa765"},
> + { ATH11K_HW_WCN6855_HW21, "qcom,monaco-evk", "nfa765"},
> + { ATH11K_HW_WCN6855_HW21, "qcom,hamoa-iot-evk", "nfa765"},
> + { /* Sentinel */ }
> +};
> +
> +const char *ath11k_core_get_usecase_firmware(struct ath11k_base *ab)
> +{
> + const struct __ath11k_core_usecase_firmware_table *entry = NULL;
> +
> + entry = ath11k_core_usecase_firmware_table;
> + while (entry->compatible) {
> + if (ab->hw_rev == entry->hw_rev &&
> + of_machine_is_compatible(entry->compatible))
> + return entry->firmware_name;
> + entry++;
> + }
> +
> + return NULL;
> +}
> +EXPORT_SYMBOL(ath11k_core_get_usecase_firmware);
> +
> void ath11k_fw_stats_pdevs_free(struct list_head *head)
> {
> struct ath11k_fw_stats_pdev *i, *tmp;
> diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
> index 3f41e6569a78..a0d725923ef2 100644
> --- a/drivers/net/wireless/ath/ath11k/core.h
> +++ b/drivers/net/wireless/ath/ath11k/core.h
> @@ -1292,6 +1292,7 @@ bool ath11k_core_coldboot_cal_support(struct ath11k_base *ab);
>
> const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab,
> const char *filename);
> +const char *ath11k_core_get_usecase_firmware(struct ath11k_base *ab);
>
> static inline const char *ath11k_scan_state_str(enum ath11k_scan_state state)
> {
> @@ -1346,6 +1347,9 @@ static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab,
>
> of_property_read_string(ab->dev->of_node, "firmware-name", &fw_name);
>
> + if (!fw_name)
> + fw_name = ath11k_core_get_usecase_firmware(ab);
> +
> if (fw_name && strncmp(filename, "board", 5))
> snprintf(buf, buf_len, "%s/%s/%s/%s", ATH11K_FW_DIR,
> ab->hw_params.fw.dir, fw_name, filename);
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible
2026-01-21 9:50 [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Miaoqing Pan
` (2 preceding siblings ...)
2026-01-27 17:31 ` [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Jeff Johnson
@ 2026-01-30 15:15 ` Jeff Johnson
3 siblings, 0 replies; 11+ messages in thread
From: Jeff Johnson @ 2026-01-30 15:15 UTC (permalink / raw)
To: jjohnson, johannes, robh, krzk+dt, conor+dt, Miaoqing Pan
Cc: ath11k, linux-wireless, linux-kernel, devicetree, jonas.gorski, krzk
On Wed, 21 Jan 2026 17:50:53 +0800, Miaoqing Pan wrote:
> The 'firmware-name' property was introduced to allow end-users and
> integrators to select use-case-specific firmware for the WCN6855.
> But for M.2 WLAN chips, there is no suitable DTS node to specify
> the 'firmware-name' property. In addition, assigning firmware for
> the M.2 PCIe interface causes chips that do not use use-case-specific
> firmware to fail. Therefore, abandoning the approach of specifying
> firmware in DTS. As an alternative, propose a static lookup table
> mapping device compatible to firmware names.
>
> [...]
Applied, thanks!
[1/2] wifi: ath11k: add usecase firmware handling based on device compatible
commit: c386a2b1068910538e87ef1cf2fc938ebf7e218f
[2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property
commit: adce4fa499611c1c6eaf19d6fb0305ec0731d06f
Best regards,
--
Jeff Johnson <jeff.johnson@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-01-30 15:15 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-21 9:50 [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Miaoqing Pan
2026-01-21 9:50 ` [PATCH v4 ath-current 1/2] " Miaoqing Pan
2026-01-28 15:42 ` Vasanthakumar Thiagarajan
2026-01-29 2:10 ` Baochen Qiang
2026-01-21 9:50 ` [PATCH v4 ath-current 2/2] dt-bindings: net: wireless: ath11k-pci: deprecate 'firmware-name' property Miaoqing Pan
2026-01-28 8:00 ` Krzysztof Kozlowski
2026-01-27 17:31 ` [PATCH v4 ath-current 0/2] wifi: ath11k: add usecase firmware handling based on device compatible Jeff Johnson
2026-01-28 8:01 ` Krzysztof Kozlowski
2026-01-28 8:06 ` Miaoqing Pan
2026-01-28 15:30 ` Jeff Johnson
2026-01-30 15:15 ` Jeff Johnson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®