diff options
| author | jiad <jiad@codeaurora.org> | 2017-11-16 16:54:09 +0800 |
|---|---|---|
| committer | jiad <jiad@codeaurora.org> | 2017-11-17 09:35:25 +0800 |
| commit | 1857b211dfa4b114b1c24e7207cb650dcb338d8a (patch) | |
| tree | 0b3ebf0918800737fc844ff1f44a9d6a178d31ab | |
| parent | ae2f6cb5ada42a3e3da6182ac3092007f5a319d8 (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.c | 7 |
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) |
