diff mbox series

ath11k: pci: Add more MODULE_FIRMWARE() entries

Message ID 20230330143718.19511-1-tiwai@suse.de
State New
Headers show
Series ath11k: pci: Add more MODULE_FIRMWARE() entries | expand

Commit Message

Takashi Iwai March 30, 2023, 2:37 p.m. UTC
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 <tiwai@suse.de>
---

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(-)

Comments

Simon Horman March 31, 2023, 1:45 p.m. UTC | #1
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 <tiwai@suse.de>
> ---
> 
> 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
Takashi Iwai March 31, 2023, 1:58 p.m. UTC | #2
On Fri, 31 Mar 2023 15:45:27 +0200,
Simon Horman wrote:
> 
> 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 <tiwai@suse.de>
> > ---
> > 
> > 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.

MODULE_FIRMWARE() itself is nothing but a hint for the required
firmware files.  The driver supports those models, hence it should
list up the mandatory firmware files that *can* be used with it;
without the firmware, the driver itself is just useless, as you know.

The rest -- how to reduce the actual sizes -- is above the kernel
modinfo covers, and it depends on the system implementation, IMO.
It can be somehow more selective, it can compress data, or it can load
the stuff on demands.


thanks,

Takashi
Simon Horman March 31, 2023, 2:16 p.m. UTC | #3
On Fri, Mar 31, 2023 at 03:58:17PM +0200, Takashi Iwai wrote:
> On Fri, 31 Mar 2023 15:45:27 +0200,
> Simon Horman wrote:
> > 
> > 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 <tiwai@suse.de>
> > > ---
> > > 
> > > 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.
> 
> MODULE_FIRMWARE() itself is nothing but a hint for the required
> firmware files.  The driver supports those models, hence it should
> list up the mandatory firmware files that *can* be used with it;
> without the firmware, the driver itself is just useless, as you know.
> 
> The rest -- how to reduce the actual sizes -- is above the kernel
> modinfo covers, and it depends on the system implementation, IMO.
> It can be somehow more selective, it can compress data, or it can load
> the stuff on demands.

Thanks, understood.
If that is the case then I have no objections.

Reviewed-by: Simon Horman <simon.horman@corigine.com>
Kalle Valo April 17, 2023, 10:17 a.m. UTC | #4
Takashi Iwai <tiwai@suse.de> 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 <tiwai@suse.de>
> Reviewed-by: Simon Horman <simon.horman@corigine.com>
> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>

Patch applied to ath-next branch of ath.git, thanks.

06c584739692 wifi: ath11k: pci: Add more MODULE_FIRMWARE() entries
diff mbox series

Patch

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/*");