g2d: fix fence timeout handling
authorCho KyongHo <pullip.cho@samsung.com>
Fri, 19 Jan 2018 03:20:34 +0000 (12:20 +0900)
committerSeungchul Kim <sc377.kim@samsung.com>
Mon, 28 May 2018 05:28:02 +0000 (14:28 +0900)
commitae4e346080092c2d39ffa6ea5174af25ef60b92d
treec3cae21ac719d4a66696e6b227e53ac5ad66e4f4
parentbaa9f3ee725f76f0b6fbb5f853d914b9dc17ae16
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