Re: [PATCH v2] brcmfmac: expose firmware config files through modinfo
From: Hans de Goede
Date: Fri Nov 20 2020 - 10:44:11 EST
Hi,
On 11/20/20 12:11 PM, Matthias Brugger wrote:
>
>
> On 20/11/2020 11:05, Dmitry Osipenko wrote:
>> 20.11.2020 12:52, matthias.bgg@xxxxxxxxxx пишет:
>>> From: Matthias Brugger <mbrugger@xxxxxxxx>
>>>
>>> Apart from a firmware binary the chip needs a config file used by the
>>> FW. Add the config files to modinfo so that they can be read by
>>> userspace.
>>>
>>> Signed-off-by: Matthias Brugger <mbrugger@xxxxxxxx>
>>>
>>> ---
>>>
>>> Changes in v2:
>>> In comparison to first version [0] we use wildcards to enumerate the
>>> firmware configuration files. Wildcard support was added to dracut
>>> recently [1].
>>> [0] https://lore.kernel.org/linux-wireless/20200701153123.25602-1-matthias.bgg@xxxxxxxxxx/
>>> [1] https://github.com/dracutdevs/dracut/pull/860
>>>
>>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 9 +++++++++
>>> 1 file changed, 9 insertions(+)
>>>
>>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>>> index 99987a789e7e..dd6d287b1b00 100644
>>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
>>> @@ -625,6 +625,15 @@ BRCMF_FW_DEF(4359, "brcmfmac4359-sdio");
>>> BRCMF_FW_DEF(4373, "brcmfmac4373-sdio");
>>> BRCMF_FW_DEF(43012, "brcmfmac43012-sdio");
>>> +/* firmware config files */
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac4330-sdio.*.txt");
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac43340-sdio.*.txt");
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac43362-sdio.*.txt");
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac43430a0-sdio.*.txt");
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac43430-sdio.*.txt");
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac43455-sdio.*.txt");
>>> +MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcm/brcmfmac4356-pcie.*.txt");
>>
>> This doesn't cover all hardware models. Note that the upstream
>> linux-firmware has files only for a few hardware models.
>>
>> I suppose that the correct mask should be "brcm/brcmfmac*-sdio.*.txt".
>>
>
> We can use the two "brcm/brcmfmac*-sdio.*.txt" and "brcm/brcmfmac*-pcie.*.txt" to also include firmware files for chips that don't have any config file in linux-firmware.
Yes, lets just go with those 2 wildcard matches, that should catch all the files the driver needs without needing to add a lot of extra MODULE_FIRMWARE() entries to the module's firmware.
> I'm indifferent to that, although I think we should make incentivize to upstream firmware config files to linux-firmware.
I completely agree with you. Actually, if you take a look you will see that most of these were submitted to linux-firmware by me :)
But this is really orthogonal to which MODULE_FIRMWARE() entries we should add.
Regards,
Hans