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

Commit 9e1f3f86 authored by Ruofei Ma's avatar Ruofei Ma
Browse files

msm: cvp: Remove SSR signaling in fence path



Do not signal synx with SSR event error in fence path.

Change-Id: Ic33eab74412a2e3356cb049b60b70b2b29971773
Signed-off-by: default avatarRuofei Ma <ruofeim@codeaurora.org>
parent 70fe4cf2
Loading
Loading
Loading
Loading
+26 −2
Original line number Diff line number Diff line
@@ -1070,6 +1070,10 @@ static int msm_cvp_thread_fence_run(void *data)
				"%s: Failed in call_hfi_op %d, %x\n",
				__func__, in_pkt->pkt_data[0],
				in_pkt->pkt_data[1]);

			if (rc == -ECONNRESET)
				goto exit;

			synx_state = SYNX_STATE_SIGNALED_ERROR;
		}

@@ -1080,6 +1084,10 @@ static int msm_cvp_thread_fence_run(void *data)
				dprintk(CVP_ERR,
				"%s: wait for signal failed, rc %d\n",
				__func__, rc);

				if (rc == -ECONNRESET)
					goto exit;

				synx_state = SYNX_STATE_SIGNALED_ERROR;
			}
		}
@@ -1175,6 +1183,10 @@ static int msm_cvp_thread_fence_run(void *data)
				"%s: Failed in call_hfi_op %d, %x\n",
				__func__, in_pkt->pkt_data[0],
				in_pkt->pkt_data[1]);

			if (rc == -ECONNRESET)
				goto exit;

			synx_state = SYNX_STATE_SIGNALED_ERROR;
		}

@@ -1185,6 +1197,10 @@ static int msm_cvp_thread_fence_run(void *data)
				dprintk(CVP_ERR,
				"%s: wait for signal failed, rc %d\n",
				__func__, rc);

				if (rc == -ECONNRESET)
					goto exit;

				synx_state = SYNX_STATE_SIGNALED_ERROR;
			}
		}
@@ -1246,6 +1262,10 @@ static int msm_cvp_thread_fence_run(void *data)
				"%s: Failed in call_hfi_op %d, %x\n",
				__func__, in_pkt->pkt_data[0],
				in_pkt->pkt_data[1]);

			if (rc == -ECONNRESET)
				goto exit;

			synx_state = SYNX_STATE_SIGNALED_ERROR;
		}

@@ -1256,6 +1276,10 @@ static int msm_cvp_thread_fence_run(void *data)
				dprintk(CVP_ERR,
				"%s: wait for signal failed, rc %d\n",
				__func__, rc);

				if (rc == -ECONNRESET)
					goto exit;

				synx_state = SYNX_STATE_SIGNALED_ERROR;
			}
		}
+14 −0
Original line number Diff line number Diff line
@@ -395,11 +395,25 @@ int wait_for_sess_signal_receipt(struct msm_cvp_inst *inst,
		msecs_to_jiffies(
			inst->core->resources.msm_cvp_hw_rsp_timeout));
	if (!rc) {
		enum cvp_event_t event;
		unsigned long flags = 0;

		dprintk(CVP_WARN, "Wait interrupted or timed out: %d\n",
				SESSION_MSG_INDEX(cmd));
		call_hfi_op(hdev, flush_debug_queue, hdev->hfi_device_data);
		dump_hfi_queue(hdev->hfi_device_data);
		rc = -EIO;

		spin_lock_irqsave(&inst->event_handler.lock, flags);
		event = inst->event_handler.event;
		spin_unlock_irqrestore(
			&inst->event_handler.lock, flags);
		if (event == CVP_SSR_EVENT) {
			dprintk(CVP_WARN, "%s: SSR triggered\n",
				__func__);
			rc = -ECONNRESET;
		}

	} else {
		rc = 0;
	}