g2d: fix fence timeout handling
authorCho KyongHo <pullip.cho@samsung.com>
Fri, 19 Jan 2018 03:20:34 +0000 (12:20 +0900)
committerCosmin Tanislav <demonsingur@gmail.com>
Mon, 22 Apr 2024 17:22:15 +0000 (20:22 +0300)
commit7aff7071722c20674478d7bf654d6bed7f71a022
treead6eb61d3ee0b332f310b9105fccd9b9acc3e701
parentb5ae71bec0ecdb6b8abb6bffff9f03fe8ce01c68
g2d: fix fence timeout handling

If an fence timeout is caused by unsignaled fences, G2D driver
forcefully schedules the task to H/W because it is not a good idea
that a driver waits for a fence to be signaled undefinitely.

Sometimes fence timeout is happened when a task queued in the
workqueue is pended too long. We don't need to restart the fence
timer again because is has no meaning to recover the situation.
Moreover, it may corrupt the timer initialized for H/W timeouts if
the restarting timer for fence happens later than initializing the
timer for H/W.

In the most cases, fence timeout is happened by unsigned fences. The
counter task.starter is not zeroed when the expired task is forcefully
started. It makes confusing when debugging problems related to
timeouts.

Change-Id: I2bdcc9df1b891cdeaf315b3380f41a99cc5a3ce0
Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
drivers/gpu/exynos/g2d/g2d_fence.c