Run more device init code when resuming iwm(4) and iwx(4) devices.
authorstsp <stsp@openbsd.org>
Thu, 19 Aug 2021 18:45:11 +0000 (18:45 +0000)
committerstsp <stsp@openbsd.org>
Thu, 19 Aug 2021 18:45:11 +0000 (18:45 +0000)
commitef08b94522f8aa88dd6f1b171a9c42a0853757fe
tree77e741626ed3f947c4d591c1829373262dd158a9
parentf4d6373f1c2ad3ab24fd2d42d10cd994fb9e9e03
Run more device init code when resuming iwm(4) and iwx(4) devices.

deraadt@ pointed out that the resume code path only ran a small part
of the entire hardware init sequence which runs when the device is
first attached at boot time.

In particular, we didn't wait for device stabilization, and MSI-X
initialization was attempted too early, and the "persistence bit"
workaround was skipped (which, ironically, is supposed to address
a known hardware bug during resume).

Tested by jcs on AX201 and by myself on 8265 with no regressions seen.
sys/dev/pci/if_iwm.c
sys/dev/pci/if_iwx.c