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);
                        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:
        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);