wifi: ath11k: Send PME message during wakeup from D3cold
authorBaochen Qiang <quic_bqiang@quicinc.com>
Mon, 10 Oct 2022 03:32:37 +0000 (11:32 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 11:02:58 +0000 (12:02 +0100)
commit 3f9b09ccf7d5f23066b02881a737bee42def9d1a upstream.

We are seeing system stuck on some specific platforms due to
WLAN chip fails to wakeup from D3cold state.

With this flag, firmware will send PME message during wakeup
and this issue is gone.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3

Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Cc: "Limonciello, Mario" <Mario.Limonciello@amd.com>
Link: https://lore.kernel.org/r/20221010033237.415478-1-quic_bqiang@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/ath/ath11k/qmi.c

index 8358fe0..7cc5fa3 100644 (file)
@@ -19,6 +19,7 @@
 #define SLEEP_CLOCK_SELECT_INTERNAL_BIT        0x02
 #define HOST_CSTATE_BIT                        0x04
 #define PLATFORM_CAP_PCIE_GLOBAL_RESET 0x08
+#define PLATFORM_CAP_PCIE_PME_D3COLD   0x10
 
 #define FW_BUILD_ID_MASK "QC_IMAGE_VERSION_STRING="
 
@@ -1752,6 +1753,8 @@ static int ath11k_qmi_host_cap_send(struct ath11k_base *ab)
        if (ab->hw_params.global_reset)
                req.nm_modem |= PLATFORM_CAP_PCIE_GLOBAL_RESET;
 
+       req.nm_modem |= PLATFORM_CAP_PCIE_PME_D3COLD;
+
        ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi host cap request\n");
 
        ret = qmi_txn_init(&ab->qmi.handle, &txn,