[PATCH v2 0/2] wifi: ath9k_htc: cope with lost WMI reads
From: Nerijus Bendžiūnas
Date: Fri Sep 04 2026 - 15:53:17 EST
On the USB devices every register read is a WMI round trip that can
time out, and ath9k_regread() reports a timeout as -1, the same as an
all-ones register. Two patches already on the list handle the reads
that caused the most damage: the spectral trigger no longer reads the
filter back [1], and a failed multi-read returns all ones [2].
Patch 1 stops ath9k_htc_calcrxfilter() reading AR_RX_FILTER and
AR_PHY_ERR back to find out whether a spectral scan set the PHY error
bits, and sets them from spec_priv instead. Patch 2 counts WMI commands
issued and timed out in a new debugfs file, so a timeout can be seen on
a kernel without debug output.
[1] https://lore.kernel.org/linux-wireless/20260904181709.788886-1-nerijus.bendziunas@xxxxxxxxx/
[2] https://lore.kernel.org/linux-wireless/20260904185253.809209-2-nerijus.bendziunas@xxxxxxxxx/
Changes in v2:
- Drop the length-drop counter patch from the series; it is sent on
its own, it has nothing to do with WMI reads.
- Patch 2: the counter is named "Issued", it counts commands that were
handed to the device.
- Add Assisted-by, rewrite the commit messages, rebase onto ath-next.
Nerijus Bendžiūnas (2):
wifi: ath9k_htc: derive the PHY error filter bits from software state
wifi: ath9k_htc: count WMI commands and timeouts in debugfs
.../net/wireless/ath/ath9k/htc_drv_debug.c | 25 +++++++++++++++++++
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 12 ++++-----
drivers/net/wireless/ath/ath9k/wmi.c | 2 ++
drivers/net/wireless/ath/ath9k/wmi.h | 2 ++
4 files changed, 34 insertions(+), 7 deletions(-)
base-commit: 1d8e73163ef933624341075f576e2f36ef9133f7
--
2.55.0