icnss2: Synchronize qmi server arrive with co-processor up

WLAN RFA is present in another co-processor subsystem.
In order to prevent unclocked access, Wait for SLATE_POWER_UP
event before starting wlan cold boot qmi handshakes.

Change-Id: If24816c270c32c5f0191227ef66bc4a31549c54d
This commit is contained in:
Dundi Raviteja
2022-11-08 15:33:39 +05:30
committed by Madan Koyyalamudi
parent d2bd912107
commit 951c866f53
3 changed files with 26 additions and 0 deletions

View File

@@ -827,6 +827,13 @@ static int icnss_driver_event_server_arrive(struct icnss_priv *priv,
set_bit(ICNSS_WLFW_CONNECTED, &priv->state);
if (priv->is_slate_rfa && !test_bit(ICNSS_SLATE_UP, &priv->state)) {
reinit_completion(&priv->slate_boot_complete);
icnss_pr_dbg("Waiting for slate boot up notification, 0x%lx\n",
priv->state);
wait_for_completion(&priv->slate_boot_complete);
}
ret = wlfw_ind_register_send_sync_msg(priv);
if (ret < 0) {
if (ret == -EALREADY) {
@@ -2204,6 +2211,17 @@ static int icnss_slate_notifier_nb(struct notifier_block *nb,
unsigned long code,
void *data)
{
struct icnss_priv *priv = container_of(nb, struct icnss_priv,
slate_ssr_nb);
icnss_pr_vdbg("Slate-subsys-notify: event %lu\n", code);
if (code == QCOM_SSR_AFTER_POWERUP) {
set_bit(ICNSS_SLATE_UP, &priv->state);
complete(&priv->slate_boot_complete);
icnss_pr_dbg("Slate boot complete, state: 0x%lx\n",
priv->state);
}
return NOTIFY_OK;
}
@@ -4393,6 +4411,9 @@ static int icnss_probe(struct platform_device *pdev)
init_completion(&priv->unblock_shutdown);
if (priv->is_slate_rfa)
init_completion(&priv->slate_boot_complete);
if (priv->device_id == WCN6750_DEVICE_ID) {
priv->soc_wake_wq = alloc_workqueue("icnss_soc_wake_event",
WQ_UNBOUND|WQ_HIGHPRI, 1);