summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-07-21 11:08:23 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-07-21 11:08:22 -0700
commite3ec219ea1ff45a394c6fd911bb79a70f92edfd3 (patch)
treea2602fa6b8034edcf7829b639529b1d40fb40de7
parent2221afb10dc673379b05e23bfc248a5acab9bf8e (diff)
parent0c5297200acc5199eced640867ffcda1e18e8a32 (diff)
Merge "cnss2: Deinit MHI before device power on during SSR"
-rw-r--r--drivers/net/wireless/cnss2/main.c3
-rw-r--r--drivers/net/wireless/cnss2/pci.c8
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/wireless/cnss2/main.c b/drivers/net/wireless/cnss2/main.c
index 432960afe09a..e114d0c51a07 100644
--- a/drivers/net/wireless/cnss2/main.c
+++ b/drivers/net/wireless/cnss2/main.c
@@ -1100,7 +1100,8 @@ static int cnss_qca6290_powerup(struct cnss_plat_data *plat_priv)
return -ENODEV;
}
- if (plat_priv->ramdump_info_v2.dump_data_valid) {
+ if (plat_priv->ramdump_info_v2.dump_data_valid ||
+ test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state)) {
cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_DEINIT);
cnss_pci_clear_dump_info(pci_priv);
}
diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c
index a17b72ce03ba..236654285db7 100644
--- a/drivers/net/wireless/cnss2/pci.c
+++ b/drivers/net/wireless/cnss2/pci.c
@@ -1392,8 +1392,12 @@ void cnss_pci_stop_mhi(struct cnss_pci_data *pci_priv)
cnss_pci_set_mhi_state_bit(pci_priv, CNSS_MHI_RESUME);
cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_POWER_OFF);
- if (!plat_priv->ramdump_info_v2.dump_data_valid)
- cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_DEINIT);
+
+ if (plat_priv->ramdump_info_v2.dump_data_valid ||
+ test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state))
+ return;
+
+ cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_DEINIT);
}
static int cnss_pci_probe(struct pci_dev *pci_dev,