CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2026/05/15 13:02:12
Modified files:
sys/dev/ic : qwz.c qwzvar.h
sys/dev/pci : if_qwz_pci.c
Log message:
After ifconfig qwz0 down followed by ifconfig qwz0 up, the second up
would fail with SIOCSIFFLAGS: Resource temporarily unavailable, and
after the first failure the device could not be brought up at all
until reboot. The same symptom appeared when changing nwid while the
interface was up (which internally does down+up).
To fix this issue, we do following changes:
1. Keep the firmware running for the lifetime of the device attachment,
matching what Linux ath12k does. ifconfig down/up no longer power-cycles
the chip; it only tears down and re-establishes the per-BSS association.
2. Reset wmi.unified_ready before sending WMI_INIT so the host
actually waits for the firmware's ready event instead of returning
immediately from a stale flag.
3. Transition firmware to MHI state M3 before resetting the device in
power_down, so the chip starts from a clean slate on the next power-up.