|
@@ -9215,6 +9215,17 @@ static void i40e_rebuild(struct i40e_pf *pf, bool reinit, bool lock_acquired)
|
|
|
}
|
|
|
i40e_get_oem_version(&pf->hw);
|
|
|
|
|
|
+ if (test_bit(__I40E_EMP_RESET_INTR_RECEIVED, pf->state) &&
|
|
|
+ ((hw->aq.fw_maj_ver == 4 && hw->aq.fw_min_ver <= 33) ||
|
|
|
+ hw->aq.fw_maj_ver < 4) && hw->mac.type == I40E_MAC_XL710) {
|
|
|
+ /* The following delay is necessary for 4.33 firmware and older
|
|
|
+ * to recover after EMP reset. 200 ms should suffice but we
|
|
|
+ * put here 300 ms to be sure that FW is ready to operate
|
|
|
+ * after reset.
|
|
|
+ */
|
|
|
+ mdelay(300);
|
|
|
+ }
|
|
|
+
|
|
|
/* re-verify the eeprom if we just had an EMP reset */
|
|
|
if (test_and_clear_bit(__I40E_EMP_RESET_INTR_RECEIVED, pf->state))
|
|
|
i40e_verify_eeprom(pf);
|