mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 12:25:00 -04:00
icnss2: Avoid qmi register/unregister in case of qmi failure
During server arrive icnss driver exchanges qmi messages with wlan fw. When any qmi message failure is happening, icnss driver is releasing qmi handle and registering it. This qmi un-registration is leading to a server exit event get scheduled. Ideally, when fw goes down, server exit should come from qmi side. So, with this change avoid calling qmi handle release if any qmi message send fail happens. Change-Id: I003b10f312b071f516bdb135a287d5516f4ab52a Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
This commit is contained in:
parent
a97a28d8ac
commit
96891c25e7
1 changed files with 7 additions and 9 deletions
|
|
@ -573,44 +573,44 @@ static int icnss_driver_event_server_arrive(struct icnss_priv *priv,
|
|||
goto qmi_registered;
|
||||
}
|
||||
ignore_assert = true;
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (priv->device_id == WCN6750_DEVICE_ID) {
|
||||
ret = wlfw_host_cap_send_sync(priv);
|
||||
if (ret < 0)
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (priv->device_id == ADRASTEA_DEVICE_ID) {
|
||||
if (!priv->msa_va) {
|
||||
icnss_pr_err("Invalid MSA address\n");
|
||||
ret = -EINVAL;
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
ret = wlfw_msa_mem_info_send_sync_msg(priv);
|
||||
if (ret < 0) {
|
||||
ignore_assert = true;
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
ret = wlfw_msa_ready_send_sync_msg(priv);
|
||||
if (ret < 0) {
|
||||
ignore_assert = true;
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
ret = wlfw_cap_send_sync_msg(priv);
|
||||
if (ret < 0) {
|
||||
ignore_assert = true;
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
ret = icnss_hw_power_on(priv);
|
||||
if (ret)
|
||||
goto clear_server;
|
||||
goto fail;
|
||||
|
||||
if (priv->device_id == WCN6750_DEVICE_ID) {
|
||||
ret = wlfw_device_info_send_msg(priv);
|
||||
|
|
@ -656,8 +656,6 @@ static int icnss_driver_event_server_arrive(struct icnss_priv *priv,
|
|||
|
||||
device_info_failure:
|
||||
icnss_hw_power_off(priv);
|
||||
clear_server:
|
||||
icnss_clear_server(priv);
|
||||
fail:
|
||||
ICNSS_ASSERT(ignore_assert);
|
||||
qmi_registered:
|
||||
|
|
|
|||
Loading…
Reference in a new issue