Re: Potential firmware selection issue with QCNFA765 on ThinkPad P14s Gen 5

Baochen Qiang <[email protected]>
Newsgroups org.infradead.lists.ath11k,org.kernel.vger.linux-wireless
Message-ID <[email protected]>

On 2/4/2026 2:54 AM, Mohamed Sallam wrote:
> Hi ath11k maintainers,
> 
> I'm not very experienced with Linux - I'm an end user who noticed something
> strange with my WiFi and wanted to share my findings in case it helps others.
> 
> Full disclosure: I used AI tools to help me investigate this issue and
> understand the driver behavior. If I'm misunderstanding something fundamental,
> please let me know.
> 
> WHAT I OBSERVED
> ===============
> I have a Lenovo ThinkPad P14s Gen 5 AMD with a Qualcomm QCNFA765 WiFi card
> (PCI ID 17cb:1103, subsystem 17aa:9309). I'm running Arch Linux with kernel
> 6.12.68-1-lts and firmware package linux-firmware-atheros 20260110-1.
> 
> I noticed that channels 149-165 in the 5 GHz band are marked with (no IR),
> preventing me from using them. This happens consistently on my system.
> 
> WHAT I FOUND
> ============
> While trying to understand why this happens, I discovered that the
> linux-firmware package contains two different firmware files:
> - Generic: ath11k/WCN6855/hw2.0/amss.bin
> - Card-specific: ath11k/WCN6855/hw2.0/nfa765/amss.bin
> 
> When I manually create a symlink to use the nfa765 variant instead of the
> default, the (no IR) restrictions disappear and all channels work normally.
> This suggests the driver might not be selecting the optimal firmware for
> this specific card variant.
> 
> The AI analysis suggested that:
> - The driver looks for firmware at ath11k/<chip>/<hw_rev>/<filename>
> - There's a "firmware-name" property that can override this, but it seems
> to only work on ARM platforms with device trees, not x86 laptops
> - The PCI subsystem ID (17aa:9309) might be available to the driver but
> isn't being used to pick different firmware files
> 
> I don't know if this is accurate - it's just what the AI told me based on
> looking at the driver code. The key point is that the firmware swap fixes
> the issue for me.
> 
> REPRODUCTION STEPS
> ==================
> On my system, with the default setup:
> 1. Check channel flags: iw phy | grep -E "5745|5765|5785|5805|5825"
> 2. Channels 149-165 show (no IR)
> 
> After applying the workaround (symlink nfa765 firmware):
> 1. Same check shows channels without (no IR) restrictions
> 2. WiFi works on all channels
> 
> TECHNICAL DETAILS
> =================
> Hardware: Lenovo ThinkPad P14s Gen 5 AMD (21ME001MUS)
> WiFi: Qualcomm QCNFA765 (WCN6855 hw2.1)
> PCI: 17cb:1103, subsystem 17aa:9309 (Lenovo)
> Kernel: 6.12.68-1-lts
> Firmware: linux-firmware-atheros 20260110-1
> Firmware ver: WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
> 
> Logs from my system:
> $ dmesg | grep ath11k
> [    2.845632] ath11k_pci 0000:02:00.0: chip_id 0x0 chip_family 0x0
> board_id 0xff
> [    2.845778] ath11k_pci 0000:02:00.0: fw_version 0x1019B0E1
> fw_build_timestamp 2024-12-19
> [    2.845789] ath11k_pci 0000:02:00.0: fw_build_id
> WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.41
> [    2.845806] ath11k_pci 0000:02:00.0: qmi failed to load bdf
> [    2.845809] ath11k_pci 0000:02:00.0: qmi failed to load cal data,
> fallback to 0xff
> 
> $ lspci -vnns 02:00.0
> 02:00.0 0280: 17cb:1103 (rev 01)
>     Subsystem: 17aa:9309
>     Kernel driver in use: ath11k_pci
> 
> With default firmware:
> $ iw phy | grep -E "5745|5765|5785|5805|5825"
> * 5745.0 MHz [149] (14.0 dBm) (no IR)
> * 5765.0 MHz [153] (14.0 dBm) (no IR)
> * 5785.0 MHz [157] (14.0 dBm) (no IR)
> * 5805.0 MHz [161] (14.0 dBm) (no IR)
> * 5825.0 MHz [165] (14.0 dBm) (no IR)
> 
> With nfa765 firmware symlinked:
> * 5745.0 MHz [149] (23.0 dBm)
> * 5765.0 MHz [153] (23.0 dBm)
> * 5785.0 MHz [157] (23.0 dBm)
> * 5805.0 MHz [161] (23.0 dBm)
> * 5825.0 MHz [165] (23.0 dBm)
> 
> MY WORKAROUND
> =============
> I'm currently using this workaround:
>   sudo ln -sf ../hw2.0/nfa765/amss.bin.zst \
>       /lib/firmware/ath11k/WCN6855/hw2.1/amss.bin.zst
> 
> This fixes the issue for me, but I understand it's a hack, not a proper
> solution.
> 
> QUESTIONS
> =========
> 1. Is the driver supposed to automatically select card-specific firmware
>    based on PCI subsystem ID, or is this working as designed?
> 2. If it's supposed to work this way, could there be a bug in the firmware
>    path selection logic?
> 3. Is there a better workaround than manually symlinking firmware files?
> 
> Thank you for your time and for maintaining this driver. I appreciate
> any guidance you can provide, even if it's just to tell me this is
> expected behavior and I'm misunderstanding something.
> 

Thanks for reporting. This seems like a known issue and I have notified the dev team to
look into this. Likely we need to upload a new firmware to fix this, but I am not totally
sure now.

> Best regards,
> Mohamed Sallam
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.