]> git.baikalelectronics.ru Git - kernel.git/commit
drm/exynos: g2d: wait for engine to finish
authorTobias Jakobi <tjakobi@math.uni-bielefeld.de>
Tue, 27 Sep 2016 15:50:09 +0000 (17:50 +0200)
committerInki Dae <daeinki@gmail.com>
Fri, 30 Sep 2016 15:39:40 +0000 (00:39 +0900)
commit2827cd69c20ee0007276401ed86ab11ea8d9c575
tree09809563854add622ba6f9a0408f27bda937dad8
parentf91617d7110b7382296765c1cec3f042dad31376
drm/exynos: g2d: wait for engine to finish

While the engine works on a runqueue node it does memory access to
the buffers associated with that node.
Make sure that the engine is idle when g2d_close() and/or
g2d_remove() are called, i.e. buffer associated with the process (for
g2d_close()), or all buffers (for g2d_remove()) can be safely be
unmapped.

We have to take into account that the engine might be in an undefined
state, i.e. it hangs and doesn't become idle. In this case, we issue
a hardware reset to return the hardware and the driver context into a
proper state.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_g2d.c