-From 007ce78d1573733ad037be53635cf0f2ab6c9ff8 Mon Sep 17 00:00:00 2001
+From 62297443537543f8fa7f0ef8fcd226f3f23375a2 Mon Sep 17 00:00:00 2001
From: Sasha Levin <sashal@kernel.org>
Date: Fri, 17 May 2024 10:00:28 +0300
Subject: wifi: ath10k: fix QCOM_RPROC_COMMON dependency
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240511-ath10k-snoc-dep-v1-1-9666e3af5c27@linaro.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
- drivers/net/wireless/ath/ath10k/Kconfig | 1 +
+ drivers/net/wireless/ath/ath10k/Kconfig | 1 +
1 file changed, 1 insertion(+)
-diff --git a/drivers/net/wireless/ath/ath10k/Kconfig b/drivers/net/wireless/ath/ath10k/Kconfig
-index e6ea884cafc19..4f385f4a8cef2 100644
--- a/drivers/net/wireless/ath/ath10k/Kconfig
+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -45,6 +45,7 @@ config ATH10K_SNOC
+@@ -44,6 +44,7 @@ config ATH10K_SNOC
+ tristate "Qualcomm ath10k SNOC support"
depends on ATH10K
depends on ARCH_QCOM || COMPILE_TEST
- depends on QCOM_SMEM
+ depends on QCOM_RPROC_COMMON || QCOM_RPROC_COMMON=n
select QCOM_SCM
select QCOM_QMI_HELPERS
help
---
-2.43.0
-
+++ /dev/null
-From 12b52b078e5bfd61b72af37318d48c6d850cce63 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 2 Dec 2022 12:30:27 +0200
-Subject: wifi: ath10k: fix QCOM_SMEM dependency
-
-From: Kalle Valo <quic_kvalo@quicinc.com>
-
-[ Upstream commit d03407183d97554dfffea70f385b5bdd520f846c ]
-
-Nathan noticed that when HWSPINLOCK is disabled there's a Kconfig warning:
-
- WARNING: unmet direct dependencies detected for QCOM_SMEM
- Depends on [n]: (ARCH_QCOM [=y] || COMPILE_TEST [=n]) && HWSPINLOCK [=n]
- Selected by [m]:
- - ATH10K_SNOC [=m] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ATH [=y] && ATH10K [=m] && (ARCH_QCOM [=y] || COMPILE_TEST [=n])
-
-The problem here is that QCOM_SMEM depends on HWSPINLOCK so we cannot select
-QCOM_SMEM and instead we neeed to use 'depends on'.
-
-Reported-by: Nathan Chancellor <nathan@kernel.org>
-Link: https://lore.kernel.org/all/Y4YsyaIW+CPdHWv3@dev-arch.thelio-3990X/
-Fixes: 4d79f6f34bbb ("wifi: ath10k: Store WLAN firmware version in SMEM image table")
-Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
-Signed-off-by: Kalle Valo <kvalo@kernel.org>
-Link: https://lore.kernel.org/r/20221202103027.25974-1-kvalo@kernel.org
-Stable-dep-of: 21ae74e1bf18 ("wifi: ath10k: fix QCOM_RPROC_COMMON dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/ath/ath10k/Kconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath10k/Kconfig b/drivers/net/wireless/ath/ath10k/Kconfig
-index e0a51dad8e420..e6ea884cafc19 100644
---- a/drivers/net/wireless/ath/ath10k/Kconfig
-+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -44,7 +44,7 @@ config ATH10K_SNOC
- tristate "Qualcomm ath10k SNOC support"
- depends on ATH10K
- depends on ARCH_QCOM || COMPILE_TEST
-- select QCOM_SMEM
-+ depends on QCOM_SMEM
- select QCOM_SCM
- select QCOM_QMI_HELPERS
- help
---
-2.43.0
-
+++ /dev/null
-From a54a8f74e25cdef2f972684f063bd23c9b4bab95 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 17 Nov 2022 23:35:34 +0530
-Subject: wifi: ath10k: Store WLAN firmware version in SMEM image table
-
-From: Youghandhar Chintala <quic_youghand@quicinc.com>
-
-[ Upstream commit 4d79f6f34bbb01c6715b31ef457d5ab0390501a1 ]
-
-In a SoC based solution, it would be useful to know the versions of the
-various binary firmware blobs the system is running on. On a QCOM based
-SoC, this info can be obtained from socinfo debugfs infrastructure. For
-this to work, respective subsystem drivers have to export the firmware
-version information to an SMEM based version information table.
-
-Having firmware version information at one place will help quickly
-figure out the firmware versions of various subsystems on the device
-instead of going through builds/logs in an event of a system crash.
-
-Fill WLAN firmware version information in SMEM version table to be
-printed as part of socinfo debugfs infrastructure on a Qualcomm based
-SoC.
-
-This change is applicable only for SNOC/QMI based targets.
-
-Example:
-cat /sys/kernel/debug/qcom_socinfo/cnss/name
-QC_IMAGE_VERSION_STRING=WLAN.HL.3.2.2.c10-00754-QCAHLSWMTPL-1
-
-Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2.c10-00754-QCAHLSWMTPL-1
-
-Signed-off-by: Youghandhar Chintala <quic_youghand@quicinc.com>
-Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
-Link: https://lore.kernel.org/r/20221117180534.2267-1-quic_youghand@quicinc.com
-Stable-dep-of: 21ae74e1bf18 ("wifi: ath10k: fix QCOM_RPROC_COMMON dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/net/wireless/ath/ath10k/Kconfig | 1 +
- drivers/net/wireless/ath/ath10k/qmi.c | 35 +++++++++++++++++++++++++
- 2 files changed, 36 insertions(+)
-
-diff --git a/drivers/net/wireless/ath/ath10k/Kconfig b/drivers/net/wireless/ath/ath10k/Kconfig
-index ca007b800f756..e0a51dad8e420 100644
---- a/drivers/net/wireless/ath/ath10k/Kconfig
-+++ b/drivers/net/wireless/ath/ath10k/Kconfig
-@@ -44,6 +44,7 @@ config ATH10K_SNOC
- tristate "Qualcomm ath10k SNOC support"
- depends on ATH10K
- depends on ARCH_QCOM || COMPILE_TEST
-+ select QCOM_SMEM
- select QCOM_SCM
- select QCOM_QMI_HELPERS
- help
-diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c
-index 80fcb917fe4e1..22bd97d434cc9 100644
---- a/drivers/net/wireless/ath/ath10k/qmi.c
-+++ b/drivers/net/wireless/ath/ath10k/qmi.c
-@@ -14,6 +14,7 @@
- #include <linux/net.h>
- #include <linux/platform_device.h>
- #include <linux/qcom_scm.h>
-+#include <linux/soc/qcom/smem.h>
- #include <linux/string.h>
- #include <net/sock.h>
-
-@@ -22,6 +23,10 @@
-
- #define ATH10K_QMI_CLIENT_ID 0x4b4e454c
- #define ATH10K_QMI_TIMEOUT 30
-+#define SMEM_IMAGE_VERSION_TABLE 469
-+#define SMEM_IMAGE_TABLE_CNSS_INDEX 13
-+#define SMEM_IMAGE_VERSION_ENTRY_SIZE 128
-+#define SMEM_IMAGE_VERSION_NAME_SIZE 75
-
- static int ath10k_qmi_map_msa_permission(struct ath10k_qmi *qmi,
- struct ath10k_msa_mem_info *mem_info)
-@@ -536,6 +541,33 @@ int ath10k_qmi_wlan_disable(struct ath10k *ar)
- return ath10k_qmi_mode_send_sync_msg(ar, QMI_WLFW_OFF_V01);
- }
-
-+static void ath10k_qmi_add_wlan_ver_smem(struct ath10k *ar, const char *fw_build_id)
-+{
-+ u8 *table_ptr;
-+ size_t smem_item_size;
-+ const u32 smem_img_idx_wlan = SMEM_IMAGE_TABLE_CNSS_INDEX *
-+ SMEM_IMAGE_VERSION_ENTRY_SIZE;
-+
-+ table_ptr = qcom_smem_get(QCOM_SMEM_HOST_ANY,
-+ SMEM_IMAGE_VERSION_TABLE,
-+ &smem_item_size);
-+
-+ if (IS_ERR(table_ptr)) {
-+ ath10k_err(ar, "smem image version table not found\n");
-+ return;
-+ }
-+
-+ if (smem_img_idx_wlan + SMEM_IMAGE_VERSION_ENTRY_SIZE >
-+ smem_item_size) {
-+ ath10k_err(ar, "smem block size too small: %zu\n",
-+ smem_item_size);
-+ return;
-+ }
-+
-+ strscpy(table_ptr + smem_img_idx_wlan, fw_build_id,
-+ SMEM_IMAGE_VERSION_NAME_SIZE);
-+}
-+
- static int ath10k_qmi_cap_send_sync_msg(struct ath10k_qmi *qmi)
- {
- struct wlfw_cap_resp_msg_v01 *resp;
-@@ -606,6 +638,9 @@ static int ath10k_qmi_cap_send_sync_msg(struct ath10k_qmi *qmi)
- qmi->fw_version, qmi->fw_build_timestamp, qmi->fw_build_id);
- }
-
-+ if (resp->fw_build_id_valid)
-+ ath10k_qmi_add_wlan_ver_smem(ar, qmi->fw_build_id);
-+
- kfree(resp);
- return 0;
-
---
-2.43.0
-