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

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

Merge "msm: cvp: Remove SSR signaling in fence path"

parents 7fb4144f 9e1f3f86
Loading
Loading
Loading
Loading
+26 −2
Original line number Diff line number Diff line
@@ -1072,6 +1072,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;
		}

@@ -1082,6 +1086,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;
			}
		}
@@ -1177,6 +1185,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;
		}

@@ -1187,6 +1199,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;
			}
		}
@@ -1248,6 +1264,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;
		}

@@ -1258,6 +1278,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;
	}