Browse Source

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>
Andrzej Hajda 11 years ago
parent
commit
22e816f87c
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/gpu/drm/exynos/exynos_drm_ipp.c

+ 5 - 0
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,
 static void ipp_clean_cmd_node(struct ipp_context *ctx,
 				struct drm_exynos_ipp_cmd_node *c_node)
 				struct drm_exynos_ipp_cmd_node *c_node)
 {
 {
+	int i;
+
 	/* cancel works */
 	/* cancel works */
 	cancel_work_sync(&c_node->start_work->work);
 	cancel_work_sync(&c_node->start_work->work);
 	cancel_work_sync(&c_node->stop_work->work);
 	cancel_work_sync(&c_node->stop_work->work);
 	cancel_work_sync(&c_node->event_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 */
 	/* delete list */
 	list_del(&c_node->list);
 	list_del(&c_node->list);