[PATCH] wifi: ath11k: request firmware-2.bin directly

Julius Bairaktaris julius at bairaktaris.de
Sat Oct 17 03:37:42 PDT 2026


Hi Jeff,

gentle ping on this one. Would you also like the same change for
ath12k? I can send it as a separate patch.

Thanks,
Julius


Am Do., 10. Sept. 2026 um 07:25 Uhr schrieb Julius Bairaktaris
<julius at bairaktaris.de>:
>
> Hi,
>
> This doesn't change functionality, but log lines like
>
>     Could not find firmware /lib/firmware/ath11k/IPQ8074/hw2.0/firmware-2.bin
>
> confuse the average user.
>
> linux-firmware does not ship firmware-2.bin for IPQ5424. I don't have the
> hardware, so the fix would be unverified there. Would you like the same
> change for ath12k?
>
> Julius
>
> Am Do., 10. Sept. 2026 um 07:18 Uhr schrieb Julius Bairaktaris
> <julius at bairaktaris.de>:
> >
> > ath11k treats firmware-2.bin as optional and falls back to API 1 when
> > the file is not present. Request it with request_firmware_direct(),
> > which does not fall back to the userspace firmware helper.
> >
> > Closes: https://github.com/openwrt/openwrt/issues/24743
> > Assisted-by: Claude:claude-opus-5
> > Signed-off-by: Julius Bairaktaris <julius at bairaktaris.de>
> > ---
> >  drivers/net/wireless/ath/ath11k/fw.c | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/wireless/ath/ath11k/fw.c b/drivers/net/wireless/ath/ath11k/fw.c
> > index ef1b4c81843a..88ec2ffd9f00 100644
> > --- a/drivers/net/wireless/ath/ath11k/fw.c
> > +++ b/drivers/net/wireless/ath/ath11k/fw.c
> > @@ -16,10 +16,12 @@ static int ath11k_fw_request_firmware_api_n(struct ath11k_base *ab,
> >         struct ath11k_fw_ie *hdr;
> >         const u8 *data;
> >         __le32 *timestamp;
> > +       char path[100];
> >
> > -       ab->fw.fw = ath11k_core_firmware_request(ab, name);
> > -       if (IS_ERR(ab->fw.fw)) {
> > -               ret = PTR_ERR(ab->fw.fw);
> > +       ath11k_core_create_firmware_path(ab, name, path, sizeof(path));
> > +
> > +       ret = request_firmware_direct(&ab->fw.fw, path, ab->dev);
> > +       if (ret) {
> >                 ath11k_dbg(ab, ATH11K_DBG_BOOT, "failed to load %s: %d\n", name, ret);
> >                 ab->fw.fw = NULL;
> >                 return ret;
> > --
> > 2.53.0
> >



More information about the ath11k mailing list