From 1857b211dfa4b114b1c24e7207cb650dcb338d8a Mon Sep 17 00:00:00 2001 From: jiad Date: Thu, 16 Nov 2017 16:54:09 +0800 Subject: [PATCH] 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 --- drivers/net/wireless/cnss2/pci.c | 7 ++++--- 1 file 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)