summaryrefslogtreecommitdiff
path: root/cpusched.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpusched.h')
0 files changed, 0 insertions, 0 deletions
t.git/diff/?id=134a0fe98471b2e15a2b1bc22f4bddbb98bd6e18&id2=5332737432ad5989830dae75df0d3e9cce56e893'>diff)
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>
Diffstat
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.c84
1 files changed, 77 insertions, 7 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c