On 4/2/2024 8:55 AM, Dmitry Baryshkov wrote:
> I'd say, we should take a step back and actually verify how this was
> handled in the vendor kernel.

(error handling and other non-QMI code removed from the following for 
readability)

In ath10k we unconditionally call the following in
ath10k_qmi_event_server_arrive():
        ret = ath10k_qmi_host_cap_send_sync(qmi);
        ret = ath10k_qmi_msa_mem_info_send_sync_msg(qmi);
        ret = ath10k_qmi_setup_msa_permissions(qmi);
        ret = ath10k_qmi_msa_ready_send_sync_msg(qmi);
        ret = ath10k_qmi_cap_send_sync_msg(qmi);

In vendor icnss2 there is conditional logic in 
icnss_driver_event_server_arrive():
        if (priv->device_id == WCN6750_DEVICE_ID ||
            priv->device_id == WCN6450_DEVICE_ID) {
                ret = wlfw_host_cap_send_sync(priv);
        }

        if (priv->device_id == ADRASTEA_DEVICE_ID) {
                ret = wlfw_msa_mem_info_send_sync_msg(priv);
                ret = wlfw_msa_ready_send_sync_msg(priv);
        }

        ret = wlfw_cap_send_sync_msg(priv);

reference:
https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/platform/-/blob/wlan-platform.lnx.1.0.r1-rel/icnss2/main.c?ref_type=heads#L890

/jeff

Reply via email to