Subject: Re: [PATCH] ath11k: pci: Add more MODULE_FIRMWARE() entries

From: Simon Horman <[email-masked]>
Date: Fri, 31 Mar 2023 15:45:27 +0200

On Thu, Mar 30, 2023 at 04:37:18PM +0200, Takashi Iwai wrote:
> As there are a few more models supported by the driver, let's add the
> missing MODULE_FIRMWARE() entries for them.  The lack of them resulted
> in the missing device enablement on some systems, such as the
> installation image of openSUSE.
> 
> While we are at it, use the wildcard instead of listing each firmware
> files individually for each.
> 
> Signed-off-by: Takashi Iwai <[email-masked]>
> ---
> 
> I can rewrite without wildcards if it's preferred, too.
> But IMO this makes easier to maintain.
> 
>  drivers/net/wireless/ath/ath11k/pci.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath11k/pci.c b/drivers/net/wireless/ath/ath11k/pci.c
> index 0aeef2948ff5..379f7946a29e 100644
> --- a/drivers/net/wireless/ath/ath11k/pci.c
> +++ b/drivers/net/wireless/ath/ath11k/pci.c
> @@ -1039,7 +1039,8 @@ module_exit(ath11k_pci_exit);
>  MODULE_DESCRIPTION("Driver support for Qualcomm Technologies 802.11ax WLAN PCIe devices");
>  MODULE_LICENSE("Dual BSD/GPL");
>  
> -/* QCA639x 2.0 firmware files */
> -MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_BOARD_API2_FILE);
> -MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_AMSS_FILE);
> -MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/" ATH11K_M3_FILE);
> +/* firmware files */
> +MODULE_FIRMWARE(ATH11K_FW_DIR "/QCA6390/hw2.0/*");
> +MODULE_FIRMWARE(ATH11K_FW_DIR "/QCN9074/hw1.0/*");
> +MODULE_FIRMWARE(ATH11K_FW_DIR "/WCN6855/hw2.0/*");
> +MODULE_FIRMWARE(ATH11K_FW_DIR "/WCN6855/hw2.1/*");

I don't feel strongly about this.

But unless I'm mistaken the above does seem to pick up a number of files
totalling around 25Mbytes. Perhaps that isn't ideal.

$ find ath11k/QC* ath11k/WCN6*
ath11k/QCA6390
ath11k/QCA6390/hw2.0
ath11k/QCA6390/hw2.0/board-2.bin
ath11k/QCA6390/hw2.0/Notice.txt
ath11k/QCA6390/hw2.0/amss.bin
ath11k/QCA6390/hw2.0/m3.bin
ath11k/QCN9074
ath11k/QCN9074/hw1.0
ath11k/QCN9074/hw1.0/board-2.bin
ath11k/QCN9074/hw1.0/Notice.txt
ath11k/QCN9074/hw1.0/amss.bin
ath11k/QCN9074/hw1.0/m3.bin
ath11k/WCN6750
ath11k/WCN6750/hw1.0
ath11k/WCN6750/hw1.0/wpss.b02
ath11k/WCN6750/hw1.0/wpss.b04
ath11k/WCN6750/hw1.0/wpss.b03
ath11k/WCN6750/hw1.0/board-2.bin
ath11k/WCN6750/hw1.0/wpss.b08
ath11k/WCN6750/hw1.0/wpss.b05
ath11k/WCN6750/hw1.0/Notice.txt
ath11k/WCN6750/hw1.0/wpss.b01
ath11k/WCN6750/hw1.0/wpss.b06
ath11k/WCN6750/hw1.0/wpss.b07
ath11k/WCN6750/hw1.0/wpss.b00
ath11k/WCN6750/hw1.0/wpss.mdt
ath11k/WCN6855
ath11k/WCN6855/hw2.0
ath11k/WCN6855/hw2.0/board-2.bin
ath11k/WCN6855/hw2.0/regdb.bin
ath11k/WCN6855/hw2.0/Notice.txt
ath11k/WCN6855/hw2.0/amss.bin
ath11k/WCN6855/hw2.0/m3.bin
$ du -sh ath11k/QC* ath11k/WCN6*
3,2M	ath11k/QCA6390
4,0M	ath11k/QCN9074
8,1M	ath11k/WCN6750
9,7M	ath11k/WCN6855