From 37f6035a12673b5d75ca1e3df6dae2b9f0ffc622 Mon Sep 17 00:00:00 2001 From: Li Huang Date: Wed, 8 Dec 2021 17:21:19 +0800 Subject: [PATCH] video: rockchip: rga3: Modify the judgment of the return value of the func for wait_event_interruptible_timeout Signed-off-by: Li Huang Change-Id: I762f5dde14a3ce42e5642f07ef5249bf4492c038 --- drivers/video/rockchip/rga3/rga_job.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/video/rockchip/rga3/rga_job.c b/drivers/video/rockchip/rga3/rga_job.c index cc3883ff7cb1..467b293cec33 100644 --- a/drivers/video/rockchip/rga3/rga_job.c +++ b/drivers/video/rockchip/rga3/rga_job.c @@ -673,12 +673,17 @@ static inline int rga_job_wait(struct rga_scheduler_t *rga_scheduler, left_time = wait_event_interruptible_timeout(rga_scheduler->job_done_wq, job->flags & RGA_JOB_DONE, RGA_SYNC_TIMEOUT_DELAY); - if (left_time <= 0) { - ret = left_time < 0 ? left_time : -ETIMEDOUT; - if (ret < 0) - rga_scheduler->ops->soft_reset(rga_scheduler); - - return ret; + switch (left_time) { + case 0: + pr_err("%s timeout", __func__); + ret = -EBUSY; + break; + case -ERESTARTSYS: + ret = -ERESTARTSYS; + break; + default: + ret = 0; + break; } now = ktime_get(); @@ -687,7 +692,7 @@ static inline int rga_job_wait(struct rga_scheduler_t *rga_scheduler, pr_err("%s use time = %lld\n", __func__, ktime_to_us(ktime_sub(now, job->timestamp))); - return 0; + return ret; } static void rga_input_fence_signaled(struct dma_fence *fence, @@ -823,7 +828,6 @@ int rga_commit(struct rga_req *rga_command_base, int flags) ret = rga_job_wait(scheduler, job); if (ret < 0) { - pr_err("failed to wait rga job! May be timeout\n"); goto running_job_abort; } @@ -879,7 +883,6 @@ int rga_kernel_commit(struct rga_req *rga_command_base, ret = rga_job_wait(scheduler, job); if (ret < 0) { - pr_err("failed to wait rga job! May be timeout\n"); goto running_job_abort; } rga_job_cleanup(job);