Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9937f5db authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "icnss2: Avoid race between SOC wake requests"

parents 00188f39 dbb6f25a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -850,6 +850,7 @@ static int icnss_driver_event_fw_ready_ind(struct icnss_priv *priv, void *data)

	set_bit(ICNSS_FW_READY, &priv->state);
	clear_bit(ICNSS_MODE_ON, &priv->state);
	atomic_set(&priv->soc_wake_ref_count, 0);

	if (priv->device_id == WCN6750_DEVICE_ID)
		icnss_free_qdss_mem(priv);
@@ -1091,6 +1092,12 @@ static int icnss_event_soc_wake_request(struct icnss_priv *priv, void *data)
	if (!priv)
		return -ENODEV;

	if (atomic_inc_not_zero(&priv->soc_wake_ref_count)) {
		icnss_pr_dbg("SOC awake after posting work, Ref count: %d",
			     atomic_read(&priv->soc_wake_ref_count));
		return 0;
	}

	ret = wlfw_send_soc_wake_msg(priv, QMI_WLFW_WAKE_REQUEST_V01);
	if (!ret)
		atomic_inc(&priv->soc_wake_ref_count);