diff options
author | Andrzej Hajda <a.hajda@samsung.com> | 2014-08-28 11:07:32 +0200 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2014-09-20 00:56:11 +0900 |
commit | 22e816f87cb0c0a4e507ec7a26cb08bfeef2daa4 (patch) | |
tree | 0072484de26d554022dd0320bf84c3ada3f26669 /drivers/gpu/drm/exynos | |
parent | c4a856a733b0aa3c62ce53efa20cc09feefb7739 (diff) |
drm/exynos/ipp: clean memory nodes on command node cleaning
The nodes should be removed before removing command node.
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_ipp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c index 05f103e9306d..857817cc9b4a 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c @@ -603,11 +603,16 @@ static void ipp_clean_mem_nodes(struct drm_device *drm_dev, static void ipp_clean_cmd_node(struct ipp_context *ctx, struct drm_exynos_ipp_cmd_node *c_node) { + int i; + /* cancel works */ cancel_work_sync(&c_node->start_work->work); cancel_work_sync(&c_node->stop_work->work); cancel_work_sync(&c_node->event_work->work); + for_each_ipp_ops(i) + ipp_clean_mem_nodes(ctx->subdrv.drm_dev, c_node, i); + /* delete list */ list_del(&c_node->list); |