summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrzej Hajda <a.hajda@samsung.com>2014-08-28 11:07:32 +0200
committerInki Dae <daeinki@gmail.com>2014-09-19 17:56:11 +0200
commit22e816f87cb0c0a4e507ec7a26cb08bfeef2daa4 (patch)
tree0072484de26d554022dd0320bf84c3ada3f26669
parentdrm/exynos/ipp: move nodes cleaning to separate function (diff)
downloadlinux-22e816f87cb0c0a4e507ec7a26cb08bfeef2daa4.tar.xz
linux-22e816f87cb0c0a4e507ec7a26cb08bfeef2daa4.zip
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>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_ipp.c5
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);