improve PBL->SBL EE transition handling in preparation for qwx_init_task()
authorstsp <stsp@openbsd.org>
Fri, 16 Feb 2024 16:37:42 +0000 (16:37 +0000)
committerstsp <stsp@openbsd.org>
Fri, 16 Feb 2024 16:37:42 +0000 (16:37 +0000)
commit6ff3284959af1f6dd45be7c0ead966b4cc4cffd8
treef25df109185ff6aa2759e6159298f112e141ae7c
parent5fde513370bfb35bd3a262780c4203399a2a047a
improve PBL->SBL EE transition handling in preparation for qwx_init_task()

Use a custom work queue for all EE/MHI state transitions.
Running MHI state changes in the systq won't work while running the
qwx init recovery task from the same systq. The init task would wait
for a state change and time out (assuming the device had failed to load
firmware when all was well), then the MHI state change task would run.

For consistency, send wakeups for the initial PBL->SBL EE transition
from the MHI state change task rather than the interrupt handler.
This in-place wakeup was an early hack from before when state
transitions were handled properly.
sys/dev/pci/if_qwx_pci.c