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

Commit 04ec5fe1 authored by Steven Cahail's avatar Steven Cahail
Browse files

soc: qcom: glink: Introduce RX intent request timeout in SSR



The G-Link SSR driver currently does not specify a timeout for
requesting RX intents. If the remote processor is not responding, the
glink_tx() call for sending the SSR notification could wait forever for
an RX intent and block SSR processing for the entire system.

Introduce a 500ms timeout, and restart the remote processor in question
if an intent is not queued within that time. This unblocks SSR
processing in addition to resetting the remote processor.

Change-Id: I2b00afa4e9a1b81355eedcfd7cc786afb058bee7
Signed-off-by: default avatarSteven Cahail <scahail@codeaurora.org>
parent 9da3a1e1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include "glink_private.h"

#define GLINK_SSR_REPLY_TIMEOUT	HZ
#define GLINK_SSR_INTENT_REQ_TIMEOUT_MS 500
#define GLINK_SSR_EVENT_INIT ~0
#define NUM_LOG_PAGES 3

@@ -642,6 +643,7 @@ static int configure_and_open_channel(struct subsys_info *ss_info)
	open_cfg.notify_state = glink_ssr_notify_state;
	open_cfg.notify_rx_intent_req = glink_ssr_notify_rx_intent_req;
	open_cfg.priv = ss_info->cb_data;
	open_cfg.rx_intent_req_timeout_ms = GLINK_SSR_INTENT_REQ_TIMEOUT_MS;

	handle = glink_open(&open_cfg);
	if (IS_ERR_OR_NULL(handle)) {