wifi: brcmfmac: silence warning for non-existent, optional firmware

The driver tries to load optional firmware files, specific to
the actual board compatible. These might not exist resulting in a warning
like this:
brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac4373-sdio.tq,imx93-tqma9352-mba93xxla-mini.bin failed with error -2

Silence this by using firmware_request_nowait_nowarn() for all firmware
loads which use brcmf_fw_request_done_alt_path() as callback. This one
handles optional firmware files.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
[arend: use nowarn api for optional firmware files]
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20260328140121.2583606-1-arend.vanspriel@broadcom.com
[clean up code a bit]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Alexander Stein 2026-03-28 15:01:21 +01:00 committed by Johannes Berg
parent 1c161ca67e
commit 368f5098ed

View File

@ -670,6 +670,9 @@ static int brcmf_fw_request_firmware(const struct firmware **fw,
}
fallback:
if (cur->flags & BRCMF_FW_REQF_OPTIONAL)
return firmware_request_nowarn(fw, cur->path, fwctx->dev);
return request_firmware(fw, cur->path, fwctx->dev);
}
@ -714,9 +717,10 @@ static void brcmf_fw_request_done_alt_path(const struct firmware *fw, void *ctx)
if (!alt_path)
goto fallback;
ret = request_firmware_nowait(THIS_MODULE, true, alt_path,
fwctx->dev, GFP_KERNEL, fwctx,
brcmf_fw_request_done_alt_path);
ret = firmware_request_nowait_nowarn(THIS_MODULE,
alt_path, fwctx->dev,
GFP_KERNEL, fwctx,
brcmf_fw_request_done_alt_path);
kfree(alt_path);
if (ret < 0)
@ -779,9 +783,10 @@ int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req,
fwctx->req->board_types[0]);
if (alt_path) {
fwctx->board_index++;
ret = request_firmware_nowait(THIS_MODULE, true, alt_path,
fwctx->dev, GFP_KERNEL, fwctx,
brcmf_fw_request_done_alt_path);
ret = firmware_request_nowait_nowarn(THIS_MODULE,
alt_path, fwctx->dev,
GFP_KERNEL, fwctx,
brcmf_fw_request_done_alt_path);
kfree(alt_path);
} else {
ret = request_firmware_nowait(THIS_MODULE, true, first->path,