diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-07-21 11:08:23 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-07-21 11:08:22 -0700 |
| commit | e3ec219ea1ff45a394c6fd911bb79a70f92edfd3 (patch) | |
| tree | a2602fa6b8034edcf7829b639529b1d40fb40de7 | |
| parent | 2221afb10dc673379b05e23bfc248a5acab9bf8e (diff) | |
| parent | 0c5297200acc5199eced640867ffcda1e18e8a32 (diff) | |
Merge "cnss2: Deinit MHI before device power on during SSR"
| -rw-r--r-- | drivers/net/wireless/cnss2/main.c | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/cnss2/pci.c | 8 |
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, |
