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>
This commit is contained in:
jiad 2017-11-16 16:54:09 +08:00
parent ae2f6cb5ad
commit 1857b211df

View file

@ -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)
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)