From dd5991c03612bf41ec7b9864fa90ad325f0466d2 Mon Sep 17 00:00:00 2001 From: Frank Liu Date: Thu, 25 Jan 2018 15:38:44 +0800 Subject: [PATCH] cnss2: Check pcie link state when resume Check pcie link state when do cnss_pci_resume, otherwise it will cause fw_indicator check failure when load wlan driver after system suspend and resume. Change-Id: I942aecdde1e1f6c3313337ba0309fe3d8460e6a2 CRs-Fixed: 2178779 Signed-off-by: Frank Liu --- drivers/net/wireless/cnss2/pci.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index d57d55ec79dd..227919ad58d3 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -425,16 +425,19 @@ static int cnss_pci_resume(struct device *dev) if (pci_priv->pci_link_down_ind) goto out; - ret = pci_enable_device(pci_dev); - if (ret) - cnss_pr_err("Failed to enable PCI device, err = %d\n", ret); + if (pci_priv->pci_link_state) { + ret = pci_enable_device(pci_dev); + if (ret) + cnss_pr_err("Failed to enable PCI device, err = %d\n", + ret); - if (pci_priv->saved_state) - cnss_set_pci_config_space(pci_priv, - RESTORE_PCI_CONFIG_SPACE); + if (pci_priv->saved_state) + cnss_set_pci_config_space(pci_priv, + RESTORE_PCI_CONFIG_SPACE); - pci_set_master(pci_dev); - cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_RESUME); + pci_set_master(pci_dev); + cnss_pci_set_mhi_state(pci_priv, CNSS_MHI_RESUME); + } driver_ops = plat_priv->driver_ops; if (driver_ops && driver_ops->resume) {