|
@@ -1177,9 +1177,12 @@ static void s5p_mfc_unconfigure_2port_memory(struct s5p_mfc_dev *mfc_dev)
|
|
|
static int s5p_mfc_configure_common_memory(struct s5p_mfc_dev *mfc_dev)
|
|
|
{
|
|
|
struct device *dev = &mfc_dev->plat_dev->dev;
|
|
|
- unsigned long mem_size = SZ_8M;
|
|
|
+ unsigned long mem_size = SZ_4M;
|
|
|
unsigned int bitmap_size;
|
|
|
|
|
|
+ if (IS_ENABLED(CONFIG_DMA_CMA) || exynos_is_iommu_available(dev))
|
|
|
+ mem_size = SZ_8M;
|
|
|
+
|
|
|
if (mfc_mem_size)
|
|
|
mem_size = memparse(mfc_mem_size, NULL);
|
|
|
|
|
@@ -1239,7 +1242,7 @@ static int s5p_mfc_configure_dma_memory(struct s5p_mfc_dev *mfc_dev)
|
|
|
{
|
|
|
struct device *dev = &mfc_dev->plat_dev->dev;
|
|
|
|
|
|
- if (exynos_is_iommu_available(dev))
|
|
|
+ if (exynos_is_iommu_available(dev) || !IS_TWOPORT(mfc_dev))
|
|
|
return s5p_mfc_configure_common_memory(mfc_dev);
|
|
|
else
|
|
|
return s5p_mfc_configure_2port_memory(mfc_dev);
|
|
@@ -1250,7 +1253,7 @@ static void s5p_mfc_unconfigure_dma_memory(struct s5p_mfc_dev *mfc_dev)
|
|
|
struct device *dev = &mfc_dev->plat_dev->dev;
|
|
|
|
|
|
s5p_mfc_release_firmware(mfc_dev);
|
|
|
- if (exynos_is_iommu_available(dev))
|
|
|
+ if (exynos_is_iommu_available(dev) || !IS_TWOPORT(mfc_dev))
|
|
|
s5p_mfc_unconfigure_common_memory(mfc_dev);
|
|
|
else
|
|
|
s5p_mfc_unconfigure_2port_memory(mfc_dev);
|