return !strcmp(dev_name(dev), (char *)data);
 }
 
+static void s5p_mfc_memdev_release(struct device *dev)
+{
+       dma_release_declared_memory(dev);
+}
+
 static void *mfc_get_drv_data(struct platform_device *pdev);
 
 static int s5p_mfc_alloc_memdevs(struct s5p_mfc_dev *dev)
        }
 
        dev_set_name(dev->mem_dev_l, "%s", "s5p-mfc-l");
+       dev->mem_dev_l->release = s5p_mfc_memdev_release;
        device_initialize(dev->mem_dev_l);
        of_property_read_u32_array(dev->plat_dev->dev.of_node,
                        "samsung,mfc-l", mem_info, 2);
        }
 
        dev_set_name(dev->mem_dev_r, "%s", "s5p-mfc-r");
+       dev->mem_dev_r->release = s5p_mfc_memdev_release;
        device_initialize(dev->mem_dev_r);
        of_property_read_u32_array(dev->plat_dev->dev.of_node,
                        "samsung,mfc-r", mem_info, 2);