[PATCH ath-next] wifi: ath12k: restore register window after global reset
Vasanthakumar Thiagarajan
vasanthakumar.thiagarajan at oss.qualcomm.com
Tue Oct 21 20:52:35 PDT 2025
On 10/17/2025 8:06 AM, Baochen Qiang wrote:
> Hardware target implements an address space larger than that PCI BAR can
> map. In order to be able to access the whole target address space, the
> BAR space is split into 4 segments, of which the last 3, called windows,
> can be dynamically mapped to the desired area. This is achieved by
> updating WINDOW_REG_ADDRESS register with appropriate window value.
> Currently each time when accessing a register that beyond WINDOW_START,
> host calculates the window value and caches it after window update,
> this way next time when accessing a register falling in the same window,
> host knows that the window is already good hence no additional update
> needed.
>
> However this mechanism breaks after global reset is triggered in
> ath12k_pci_soc_global_reset(), because with global reset hardware resets
> WINDOW_REG_ADDRESS register hence the window is not properly mapped any
> more. Current host does nothing about this, as a result a subsequent
> register access may not work as expected if it falls in a window same as
> before.
>
> Although there is no obvious issue seen now, better to fix it to avoid
> future problem. The fix is done by restoring the window register after
> global reset.
>
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00284.1-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>
> Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
> Signed-off-by: Baochen Qiang <baochen.qiang at oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan at oss.qualcomm.com>
More information about the ath12k
mailing list