iwm: Use the same delays as iwlwifi when resetting the device.

This is required for initialization to succeed for newer device
families.

MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Mark Johnston 2019-11-07 23:35:15 +00:00
parent 3bf2d5dd64
commit be05a0fd77
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=354502
2 changed files with 7 additions and 5 deletions

View File

@ -1315,12 +1315,14 @@ iwm_stop_device(struct iwm_softc *sc)
/* Stop the device, and put it in low power state */
iwm_apm_stop(sc);
/* Upon stop, the APM issues an interrupt if HW RF kill is set.
* Clean again the interrupt here
/* stop and reset the on-board processor */
IWM_SETBITS(sc, IWM_CSR_RESET, IWM_CSR_RESET_REG_FLAG_SW_RESET);
DELAY(5000);
/*
* Upon stop, the APM issues an interrupt if HW RF kill is set.
*/
iwm_disable_interrupts(sc);
/* stop and reset the on-board processor */
IWM_WRITE(sc, IWM_CSR_RESET, IWM_CSR_RESET_REG_FLAG_SW_RESET);
/*
* Even if we stop the HW, we still want the RF kill

View File

@ -611,7 +611,7 @@ iwm_start_hw(struct iwm_softc *sc)
/* Reset the entire device */
IWM_WRITE(sc, IWM_CSR_RESET, IWM_CSR_RESET_REG_FLAG_SW_RESET);
DELAY(10);
DELAY(5000);
if ((error = iwm_apm_init(sc)) != 0)
return error;