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

Commit 61d66e72 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: avoid channel open during LOCAL_DISCONNECT state"

parents 58cbb103 eb3aad80
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -184,6 +184,24 @@ static void wdsp_glink_notify_tx_done(void *handle, const void *priv,
	kfree(pkt_priv);
}

/*
 * wdsp_glink_notify_tx_abort - Glink notify tx abort callback to
 * free tx buffer
 * handle:      Opaque Channel handle returned by GLink
 * priv:        Private pointer to the channel
 * pkt_priv:    Private pointer to the packet
 */
static void wdsp_glink_notify_tx_abort(void *handle, const void *priv,
				       const void *pkt_priv)
{
	if (!pkt_priv) {
		pr_err("%s: Invalid parameter\n", __func__);
		return;
	}
	/* Free tx pkt */
	kfree(pkt_priv);
}

/*
 * wdsp_glink_notify_rx_intent_req - Glink notify rx intent request callback
 * to queue buffer to receive from remote client
@@ -318,9 +336,6 @@ static void wdsp_glink_notify_state(void *handle, const void *priv,
		if (ch->free_mem) {
			kfree(ch);
			ch = NULL;
		} else {
			/* Open the glink channel again */
			queue_work(wpriv->work_queue, &ch->lcl_ch_open_wrk);
		}
	} else if (event == GLINK_REMOTE_DISCONNECTED) {
		dev_dbg(wpriv->dev, "%s: remote channel: %s disconnected remotely\n",
@@ -382,6 +397,7 @@ static int wdsp_glink_open_ch(struct wdsp_glink_ch *ch)
		open_cfg.edge = WDSP_EDGE;
		open_cfg.notify_rx = wdsp_glink_notify_rx;
		open_cfg.notify_tx_done = wdsp_glink_notify_tx_done;
		open_cfg.notify_tx_abort = wdsp_glink_notify_tx_abort;
		open_cfg.notify_state = wdsp_glink_notify_state;
		open_cfg.notify_rx_intent_req = wdsp_glink_notify_rx_intent_req;
		open_cfg.priv = ch;