summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SERVICES/HIF/PCIe/hif_pci.c3
-rw-r--r--CORE/SERVICES/HIF/PCIe/if_pci.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/CORE/SERVICES/HIF/PCIe/hif_pci.c b/CORE/SERVICES/HIF/PCIe/hif_pci.c
index 66b21138ab7c..6364600d6948 100644
--- a/CORE/SERVICES/HIF/PCIe/hif_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/hif_pci.c
@@ -2020,6 +2020,9 @@ HIF_sleep_entry(void *arg)
struct hif_pci_softc *sc = hif_state->sc;
u_int32_t idle_ms;
+ if (sc->recovery)
+ return;
+
adf_os_spin_lock_irqsave(&hif_state->keep_awake_lock);
if (hif_state->verified_awake == FALSE) {
idle_ms = adf_os_ticks_to_msecs(adf_os_ticks()
diff --git a/CORE/SERVICES/HIF/PCIe/if_pci.c b/CORE/SERVICES/HIF/PCIe/if_pci.c
index a94ce1ee37a3..e44588a33536 100644
--- a/CORE/SERVICES/HIF/PCIe/if_pci.c
+++ b/CORE/SERVICES/HIF/PCIe/if_pci.c
@@ -199,6 +199,10 @@ bool
hif_pci_targ_is_awake(struct hif_pci_softc *sc, void *__iomem *mem)
{
A_UINT32 val;
+
+ if(sc->recovery)
+ return false;
+
val = A_PCI_READ32(mem + PCIE_LOCAL_BASE_ADDRESS + RTC_STATE_ADDRESS);
return (RTC_STATE_V_GET(val) == RTC_STATE_V_ON);
}
@@ -1622,6 +1626,8 @@ void hif_pci_shutdown(struct pci_dev *pdev)
if (!sc)
return;
+ sc->recovery = true;
+
if (vos_is_load_unload_in_progress(VOS_MODULE_ID_HIF, NULL)) {
printk("Load/unload in progress, ignore SSR shutdown\n");
return;