summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiad <jiad@codeaurora.org>2017-11-16 16:54:09 +0800
committerjiad <jiad@codeaurora.org>2017-11-17 09:35:25 +0800
commit1857b211dfa4b114b1c24e7207cb650dcb338d8a (patch)
tree0b3ebf0918800737fc844ff1f44a9d6a178d31ab
parentae2f6cb5ada42a3e3da6182ac3092007f5a319d8 (diff)
cnss2: fix PCIe D3hot when suspending link
When doing WLAN SSR tests on Rome PCIe platform, system hang is observed. After debugging, setting D3hot to PCIe link when suspending leads to the hang. Setting D3hot is a new change, which is added for Napier platform. But this code path shares with legacy Rome platform. In previous implementations for Rome PCIe platforms, setting D3hot to link is not needed. Fix is to set D3hot for Napier specific platforms. Change-Id: Ia6bcb1b898204c0a8fd63355dd1f0808021182c4 CRs-Fixed: 2145090 Signed-off-by: Jia Ding <jiad@codeaurora.org>
-rw-r--r--drivers/net/wireless/cnss2/pci.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c
index 8d34d74477eb..9bf4c7e11c66 100644
--- a/drivers/net/wireless/cnss2/pci.c
+++ b/drivers/net/wireless/cnss2/pci.c
@@ -129,9 +129,10 @@ int cnss_suspend_pci_link(struct cnss_pci_data *pci_priv)
pci_disable_device(pci_priv->pci_dev);
- ret = pci_set_power_state(pci_priv->pci_dev, PCI_D3hot);
- if (ret)
- cnss_pr_err("Failed to set D3Hot, err = %d\n", ret);
+ if (pci_priv->pci_dev->device != QCA6174_DEVICE_ID) {
+ if (pci_set_power_state(pci_priv->pci_dev, PCI_D3hot))
+ cnss_pr_err("Failed to set D3Hot, err = %d\n", ret);
+ }
ret = cnss_set_pci_link(pci_priv, PCI_LINK_DOWN);
if (ret)