aboutsummaryrefslogtreecommitdiff
path: root/qmi.c
diff options
context:
space:
mode:
authorBjoern A. Zeeb <bz@FreeBSD.org>2025-04-21 22:30:22 +0000
committerBjoern A. Zeeb <bz@FreeBSD.org>2025-04-21 22:30:22 +0000
commit47517ebce7b8d1dc0ee900f13404f2e90ce33be9 (patch)
tree4c44a2ef65a5bd5726893e26aca9e4790eec0766 /qmi.c
parente05a7642395e7a6cbf1876350e96bd80e6292cd4 (diff)
Diffstat (limited to 'qmi.c')
-rw-r--r--qmi.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/qmi.c b/qmi.c
index 52c1a3de8da6..f1f33af0170a 100644
--- a/qmi.c
+++ b/qmi.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: ISC
/*
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <linux/completion.h>
@@ -1039,6 +1040,10 @@ static void ath10k_qmi_driver_event_work(struct work_struct *work)
switch (event->type) {
case ATH10K_QMI_EVENT_SERVER_ARRIVE:
ath10k_qmi_event_server_arrive(qmi);
+ if (qmi->no_msa_ready_indicator) {
+ ath10k_info(ar, "qmi not waiting for msa_ready indicator");
+ ath10k_qmi_event_msa_ready(qmi);
+ }
break;
case ATH10K_QMI_EVENT_SERVER_EXIT:
ath10k_qmi_event_server_exit(qmi);
@@ -1047,6 +1052,10 @@ static void ath10k_qmi_driver_event_work(struct work_struct *work)
ath10k_qmi_event_fw_ready_ind(qmi);
break;
case ATH10K_QMI_EVENT_MSA_READY_IND:
+ if (qmi->no_msa_ready_indicator) {
+ ath10k_warn(ar, "qmi unexpected msa_ready indicator");
+ break;
+ }
ath10k_qmi_event_msa_ready(qmi);
break;
default:
@@ -1076,6 +1085,9 @@ int ath10k_qmi_init(struct ath10k *ar, u32 msa_size)
if (of_property_read_bool(dev->of_node, "qcom,msa-fixed-perm"))
qmi->msa_fixed_perm = true;
+ if (of_property_read_bool(dev->of_node, "qcom,no-msa-ready-indicator"))
+ qmi->no_msa_ready_indicator = true;
+
ret = qmi_handle_init(&qmi->qmi_hdl,
WLFW_BDF_DOWNLOAD_REQ_MSG_V01_MAX_MSG_LEN,
&ath10k_qmi_ops, qmi_msg_handler);