Message ID | 20201120095233.19953-1-matthias.bgg@kernel.org |
---|---|
State | New |
Headers | show |
Series | [v2] brcmfmac: expose firmware config files through modinfo | expand |
On 20/11/2020 11:05, Dmitry Osipenko wrote: > 20.11.2020 12:52, matthias.bgg@kernel.org пишет: >> From: Matthias Brugger <mbrugger@suse.com> >> >> 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@suse.com> >> >> --- >> >> 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@kernel.org/ >> [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. I'm indifferent to that, although I think we should make incentivize to upstream firmware config files to linux-firmware. Regards, Matthias
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@kernel.org пишет: >>> From: Matthias Brugger <mbrugger@suse.com> >>> >>> 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@suse.com> >>> >>> --- >>> >>> 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@kernel.org/ >>> [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
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"); + static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = { BRCMF_FW_ENTRY(BRCM_CC_43143_CHIP_ID, 0xFFFFFFFF, 43143), BRCMF_FW_ENTRY(BRCM_CC_43241_CHIP_ID, 0x0000001F, 43241B0),