public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH ath-next 0/2] wifi: ath11k: support usercase-specific firmware overrides
@ 2025-05-22  1:34 Miaoqing Pan
  2025-05-22  1:34 ` [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property Miaoqing Pan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Miaoqing Pan @ 2025-05-22  1:34 UTC (permalink / raw)
  To: jjohnson, johannes, robh, krzk+dt, conor+dt
  Cc: ath11k, linux-wireless, linux-kernel, devicetree, Miaoqing Pan

Introduce 'firmware-name' property to allow end-users and/or integrators to
decide which usecase-specific firmware to run on the WCN6855.

Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>

Miaoqing Pan (2):
  dt-bindings: net: wireless: ath11k-pci: describe firmware-name
    property
  wifi: ath11k: support usercase-specific firmware overrides

 .../bindings/net/wireless/qcom,ath11k-pci.yaml      |  6 ++++++
 drivers/net/wireless/ath/ath11k/core.h              | 13 +++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)


base-commit: db5a2f8ef8d4be926d29ed62182d003110c1a6ca
-- 
2.34.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property
  2025-05-22  1:34 [PATCH ath-next 0/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
@ 2025-05-22  1:34 ` Miaoqing Pan
  2025-05-22 15:21   ` Conor Dooley
  2025-05-22  1:34 ` [PATCH ath-next 2/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
  2025-06-26 23:15 ` [PATCH ath-next 0/2] " Jeff Johnson
  2 siblings, 1 reply; 6+ messages in thread
From: Miaoqing Pan @ 2025-05-22  1:34 UTC (permalink / raw)
  To: jjohnson, johannes, robh, krzk+dt, conor+dt
  Cc: ath11k, linux-wireless, linux-kernel, devicetree, Miaoqing Pan

Introduce 'firmware-name' property to allow end-users and/or integrators
to decide which usecase-specific firmware to run on the WCN6855. This is
necessary due to resource limitations such as memory capacity and
CPU capability, or performance and power optimization for different
application scenarios.

Two firmwares are supported: 'WCN6855/hw2.0' and 'WCN6855/hw2.0/nfa765'.
The former is the default firmware, suitable for most WiFi 6 STA
functions. The latter adds support for commercial-quality SAP and
optimizes power consumption for IoT applications.

Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
---
 .../devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml   | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml
index 653b319fee88..e34d42a30192 100644
--- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml
@@ -35,6 +35,12 @@ properties:
       string to uniquely identify variant of the calibration data for designs
       with colliding bus and device ids
 
+  firmware-name:
+    maxItems: 1
+    description:
+      If present, a board or platform specific string used to lookup
+      usecase-specific firmware files for the device.
+
   vddrfacmn-supply:
     description: VDD_RFA_CMN supply regulator handle
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH ath-next 2/2] wifi: ath11k: support usercase-specific firmware overrides
  2025-05-22  1:34 [PATCH ath-next 0/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
  2025-05-22  1:34 ` [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property Miaoqing Pan
@ 2025-05-22  1:34 ` Miaoqing Pan
  2025-06-10  3:02   ` Baochen Qiang
  2025-06-26 23:15 ` [PATCH ath-next 0/2] " Jeff Johnson
  2 siblings, 1 reply; 6+ messages in thread
From: Miaoqing Pan @ 2025-05-22  1:34 UTC (permalink / raw)
  To: jjohnson, johannes, robh, krzk+dt, conor+dt
  Cc: ath11k, linux-wireless, linux-kernel, devicetree, Miaoqing Pan

Introduce 'firmware-name' property to allow end-users and/or integrators to
decide which usecase-specific firmware to run on the WCN6855. This is
necessary due to resource limitations such as memory capacity and CPU
capability, or performance and power optimization for different application
scenarios.

Currently, there are two firmwares, both files can be executed
interchangeably.
For example:

- ath11k/WCN6855/hw2.0/amss.bin,
  ath11k/WCN6855/hw2.0/m3.bin
  ath11k/WCN6855/hw2.0/board-2.bin

- ath11k/WCN6855/hw2.0/nfa765/amss.bin,
  ath11k/WCN6855/hw2.0/nfa765/m3.bin
  ath11k/WCN6855/hw2.0/board-2.bin

The former is the default firmware, suitable for most WiFi 6 STA functions.
The latter adds support for commercial-quality SAP and optimizes power
consumption for IoT applications. And both use the same BDF/regdb data
within the main board-2.bin.

Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1

Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
---
 drivers/net/wireless/ath/ath11k/core.h | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 339d4fca1ed5..67b3b6d898fa 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -17,6 +17,7 @@
 #include <linux/average.h>
 #include <linux/firmware.h>
 #include <linux/suspend.h>
+#include <linux/of.h>
 
 #include "qmi.h"
 #include "htc.h"
@@ -1320,8 +1321,16 @@ static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab,
 						    const char *filename,
 						    void *buf, size_t buf_len)
 {
-	snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR,
-		 ab->hw_params.fw.dir, filename);
+	const char *fw_name = NULL;
+
+	of_property_read_string(ab->dev->of_node, "firmware-name", &fw_name);
+
+	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);
+	else
+		snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR,
+			 ab->hw_params.fw.dir, filename);
 }
 
 static inline const char *ath11k_bus_str(enum ath11k_bus bus)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property
  2025-05-22  1:34 ` [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property Miaoqing Pan
@ 2025-05-22 15:21   ` Conor Dooley
  0 siblings, 0 replies; 6+ messages in thread
From: Conor Dooley @ 2025-05-22 15:21 UTC (permalink / raw)
  To: Miaoqing Pan
  Cc: jjohnson, johannes, robh, krzk+dt, conor+dt, ath11k,
	linux-wireless, linux-kernel, devicetree

[-- Attachment #1: Type: text/plain, Size: 775 bytes --]

On Thu, May 22, 2025 at 09:34:43AM +0800, Miaoqing Pan wrote:
> Introduce 'firmware-name' property to allow end-users and/or integrators
> to decide which usecase-specific firmware to run on the WCN6855. This is
> necessary due to resource limitations such as memory capacity and
> CPU capability, or performance and power optimization for different
> application scenarios.
> 
> Two firmwares are supported: 'WCN6855/hw2.0' and 'WCN6855/hw2.0/nfa765'.
> The former is the default firmware, suitable for most WiFi 6 STA
> functions. The latter adds support for commercial-quality SAP and
> optimizes power consumption for IoT applications.
> 
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>

Acked-by: Conor Dooley <conor.dooley@microchip.com>


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH ath-next 2/2] wifi: ath11k: support usercase-specific firmware overrides
  2025-05-22  1:34 ` [PATCH ath-next 2/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
@ 2025-06-10  3:02   ` Baochen Qiang
  0 siblings, 0 replies; 6+ messages in thread
From: Baochen Qiang @ 2025-06-10  3:02 UTC (permalink / raw)
  To: Miaoqing Pan, jjohnson, johannes, robh, krzk+dt, conor+dt
  Cc: ath11k, linux-wireless, linux-kernel, devicetree



On 5/22/2025 9:34 AM, Miaoqing Pan wrote:
> Introduce 'firmware-name' property to allow end-users and/or integrators to
> decide which usecase-specific firmware to run on the WCN6855. This is
> necessary due to resource limitations such as memory capacity and CPU
> capability, or performance and power optimization for different application
> scenarios.
> 
> Currently, there are two firmwares, both files can be executed
> interchangeably.
> For example:
> 
> - ath11k/WCN6855/hw2.0/amss.bin,
>   ath11k/WCN6855/hw2.0/m3.bin
>   ath11k/WCN6855/hw2.0/board-2.bin
> 
> - ath11k/WCN6855/hw2.0/nfa765/amss.bin,
>   ath11k/WCN6855/hw2.0/nfa765/m3.bin
>   ath11k/WCN6855/hw2.0/board-2.bin
> 
> The former is the default firmware, suitable for most WiFi 6 STA functions.
> The latter adds support for commercial-quality SAP and optimizes power
> consumption for IoT applications. And both use the same BDF/regdb data
> within the main board-2.bin.
> 
> Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-04479-QCAHSPSWPL_V1_V2_SILICONZ_IOE-1
> 
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
> ---
>  drivers/net/wireless/ath/ath11k/core.h | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
> index 339d4fca1ed5..67b3b6d898fa 100644
> --- a/drivers/net/wireless/ath/ath11k/core.h
> +++ b/drivers/net/wireless/ath/ath11k/core.h
> @@ -17,6 +17,7 @@
>  #include <linux/average.h>
>  #include <linux/firmware.h>
>  #include <linux/suspend.h>
> +#include <linux/of.h>
>  
>  #include "qmi.h"
>  #include "htc.h"
> @@ -1320,8 +1321,16 @@ static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab,
>  						    const char *filename,
>  						    void *buf, size_t buf_len)
>  {
> -	snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR,
> -		 ab->hw_params.fw.dir, filename);
> +	const char *fw_name = NULL;
> +
> +	of_property_read_string(ab->dev->of_node, "firmware-name", &fw_name);
> +
> +	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);
> +	else
> +		snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR,
> +			 ab->hw_params.fw.dir, filename);
>  }
>  
>  static inline const char *ath11k_bus_str(enum ath11k_bus bus)

Reviewed-by: Baochen Qiang <quic_bqiang@quicinc.com>



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH ath-next 0/2] wifi: ath11k: support usercase-specific firmware overrides
  2025-05-22  1:34 [PATCH ath-next 0/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
  2025-05-22  1:34 ` [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property Miaoqing Pan
  2025-05-22  1:34 ` [PATCH ath-next 2/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
@ 2025-06-26 23:15 ` Jeff Johnson
  2 siblings, 0 replies; 6+ messages in thread
From: Jeff Johnson @ 2025-06-26 23:15 UTC (permalink / raw)
  To: jjohnson, johannes, robh, krzk+dt, conor+dt, Miaoqing Pan
  Cc: ath11k, linux-wireless, linux-kernel, devicetree


On Thu, 22 May 2025 09:34:42 +0800, Miaoqing Pan wrote:
> Introduce 'firmware-name' property to allow end-users and/or integrators to
> decide which usecase-specific firmware to run on the WCN6855.
> 
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
> 
> Miaoqing Pan (2):
>   dt-bindings: net: wireless: ath11k-pci: describe firmware-name
>     property
>   wifi: ath11k: support usercase-specific firmware overrides
> 
> [...]

Applied, thanks!

[1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property
      commit: 02dcb6921b8827782e51e26593d4a2866576ab63
[2/2] wifi: ath11k: support usercase-specific firmware overrides
      commit: edbbc647c4f36e8a6375d07ecb5aad8e8b90de5e

Best regards,
-- 
Jeff Johnson <jeff.johnson@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-06-26 23:15 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-22  1:34 [PATCH ath-next 0/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
2025-05-22  1:34 ` [PATCH ath-next 1/2] dt-bindings: net: wireless: ath11k-pci: describe firmware-name property Miaoqing Pan
2025-05-22 15:21   ` Conor Dooley
2025-05-22  1:34 ` [PATCH ath-next 2/2] wifi: ath11k: support usercase-specific firmware overrides Miaoqing Pan
2025-06-10  3:02   ` Baochen Qiang
2025-06-26 23:15 ` [PATCH ath-next 0/2] " Jeff Johnson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox