Index: sys/dev/iwm/if_iwm_pcie_trans.c =================================================================== --- sys/dev/iwm/if_iwm_pcie_trans.c +++ sys/dev/iwm/if_iwm_pcie_trans.c @@ -536,6 +536,17 @@ IWM_CSR_RESET_REG_FLAG_MASTER_DISABLED, 100)) device_printf(sc->sc_dev, "timeout waiting for master\n"); IWM_DPRINTF(sc, IWM_DEBUG_TRANS, "%s: iwm apm stop\n", __func__); + + /* Reset the entire device */ + IWM_SETBITS(sc, IWM_CSR_RESET, IWM_CSR_RESET_REG_FLAG_SW_RESET); + DELAY(10); + + /* + * Clear "initialization complete" bit to move adapter from + * D0A* (powered-up Active) --> D0U* (Uninitialized) state. + */ + IWM_CLRBITS(sc, IWM_CSR_GP_CNTRL, + IWM_CSR_GP_CNTRL_REG_FLAG_INIT_DONE); } /* iwlwifi pcie/trans.c */