mfc_dev 1112 drivers/media/platform/s5p-mfc/s5p_mfc.c static int s5p_mfc_configure_2port_memory(struct s5p_mfc_dev *mfc_dev) mfc_dev 1114 drivers/media/platform/s5p-mfc/s5p_mfc.c struct device *dev = &mfc_dev->plat_dev->dev; mfc_dev 1124 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_dev[BANK_L_CTX] = s5p_mfc_alloc_memdev(dev, "left", mfc_dev 1126 drivers/media/platform/s5p-mfc/s5p_mfc.c if (!mfc_dev->mem_dev[BANK_L_CTX]) mfc_dev 1128 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_dev[BANK_R_CTX] = s5p_mfc_alloc_memdev(dev, "right", mfc_dev 1130 drivers/media/platform/s5p-mfc/s5p_mfc.c if (!mfc_dev->mem_dev[BANK_R_CTX]) { mfc_dev 1131 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_L_CTX]); mfc_dev 1136 drivers/media/platform/s5p-mfc/s5p_mfc.c ret = s5p_mfc_alloc_firmware(mfc_dev); mfc_dev 1138 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_R_CTX]); mfc_dev 1139 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_L_CTX]); mfc_dev 1143 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->dma_base[BANK_L_CTX] = mfc_dev->fw_buf.dma; mfc_dev 1145 drivers/media/platform/s5p-mfc/s5p_mfc.c bank2_virt = dma_alloc_coherent(mfc_dev->mem_dev[BANK_R_CTX], mfc_dev 1149 drivers/media/platform/s5p-mfc/s5p_mfc.c s5p_mfc_release_firmware(mfc_dev); mfc_dev 1150 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_R_CTX]); mfc_dev 1151 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_L_CTX]); mfc_dev 1159 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->dma_base[BANK_R_CTX] = bank2_dma_addr - align_size; mfc_dev 1161 drivers/media/platform/s5p-mfc/s5p_mfc.c dma_free_coherent(mfc_dev->mem_dev[BANK_R_CTX], align_size, bank2_virt, mfc_dev 1164 drivers/media/platform/s5p-mfc/s5p_mfc.c vb2_dma_contig_set_max_seg_size(mfc_dev->mem_dev[BANK_L_CTX], mfc_dev 1166 drivers/media/platform/s5p-mfc/s5p_mfc.c vb2_dma_contig_set_max_seg_size(mfc_dev->mem_dev[BANK_R_CTX], mfc_dev 1172 drivers/media/platform/s5p-mfc/s5p_mfc.c static void s5p_mfc_unconfigure_2port_memory(struct s5p_mfc_dev *mfc_dev) mfc_dev 1174 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_L_CTX]); mfc_dev 1175 drivers/media/platform/s5p-mfc/s5p_mfc.c device_unregister(mfc_dev->mem_dev[BANK_R_CTX]); mfc_dev 1176 drivers/media/platform/s5p-mfc/s5p_mfc.c vb2_dma_contig_clear_max_seg_size(mfc_dev->mem_dev[BANK_L_CTX]); mfc_dev 1177 drivers/media/platform/s5p-mfc/s5p_mfc.c vb2_dma_contig_clear_max_seg_size(mfc_dev->mem_dev[BANK_R_CTX]); mfc_dev 1180 drivers/media/platform/s5p-mfc/s5p_mfc.c static int s5p_mfc_configure_common_memory(struct s5p_mfc_dev *mfc_dev) mfc_dev 1182 drivers/media/platform/s5p-mfc/s5p_mfc.c struct device *dev = &mfc_dev->plat_dev->dev; mfc_dev 1194 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_bitmap = kzalloc(bitmap_size, GFP_KERNEL); mfc_dev 1195 drivers/media/platform/s5p-mfc/s5p_mfc.c if (!mfc_dev->mem_bitmap) mfc_dev 1198 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_virt = dma_alloc_coherent(dev, mem_size, mfc_dev 1199 drivers/media/platform/s5p-mfc/s5p_mfc.c &mfc_dev->mem_base, GFP_KERNEL); mfc_dev 1200 drivers/media/platform/s5p-mfc/s5p_mfc.c if (!mfc_dev->mem_virt) { mfc_dev 1201 drivers/media/platform/s5p-mfc/s5p_mfc.c kfree(mfc_dev->mem_bitmap); mfc_dev 1206 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_size = mem_size; mfc_dev 1207 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->dma_base[BANK_L_CTX] = mfc_dev->mem_base; mfc_dev 1208 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->dma_base[BANK_R_CTX] = mfc_dev->mem_base; mfc_dev 1214 drivers/media/platform/s5p-mfc/s5p_mfc.c if (mfc_dev->mem_base == (dma_addr_t)0) { mfc_dev 1217 drivers/media/platform/s5p-mfc/s5p_mfc.c bitmap_set(mfc_dev->mem_bitmap, 0, offset >> PAGE_SHIFT); mfc_dev 1218 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->dma_base[BANK_L_CTX] += offset; mfc_dev 1219 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->dma_base[BANK_R_CTX] += offset; mfc_dev 1223 drivers/media/platform/s5p-mfc/s5p_mfc.c s5p_mfc_alloc_firmware(mfc_dev); mfc_dev 1225 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_dev[BANK_L_CTX] = mfc_dev->mem_dev[BANK_R_CTX] = dev; mfc_dev 1234 drivers/media/platform/s5p-mfc/s5p_mfc.c static void s5p_mfc_unconfigure_common_memory(struct s5p_mfc_dev *mfc_dev) mfc_dev 1236 drivers/media/platform/s5p-mfc/s5p_mfc.c struct device *dev = &mfc_dev->plat_dev->dev; mfc_dev 1238 drivers/media/platform/s5p-mfc/s5p_mfc.c dma_free_coherent(dev, mfc_dev->mem_size, mfc_dev->mem_virt, mfc_dev 1239 drivers/media/platform/s5p-mfc/s5p_mfc.c mfc_dev->mem_base); mfc_dev 1240 drivers/media/platform/s5p-mfc/s5p_mfc.c kfree(mfc_dev->mem_bitmap); mfc_dev 1244 drivers/media/platform/s5p-mfc/s5p_mfc.c static int s5p_mfc_configure_dma_memory(struct s5p_mfc_dev *mfc_dev) mfc_dev 1246 drivers/media/platform/s5p-mfc/s5p_mfc.c struct device *dev = &mfc_dev->plat_dev->dev; mfc_dev 1248 drivers/media/platform/s5p-mfc/s5p_mfc.c if (exynos_is_iommu_available(dev) || !IS_TWOPORT(mfc_dev)) mfc_dev 1249 drivers/media/platform/s5p-mfc/s5p_mfc.c return s5p_mfc_configure_common_memory(mfc_dev); mfc_dev 1251 drivers/media/platform/s5p-mfc/s5p_mfc.c return s5p_mfc_configure_2port_memory(mfc_dev); mfc_dev 1254 drivers/media/platform/s5p-mfc/s5p_mfc.c static void s5p_mfc_unconfigure_dma_memory(struct s5p_mfc_dev *mfc_dev) mfc_dev 1256 drivers/media/platform/s5p-mfc/s5p_mfc.c struct device *dev = &mfc_dev->plat_dev->dev; mfc_dev 1258 drivers/media/platform/s5p-mfc/s5p_mfc.c s5p_mfc_release_firmware(mfc_dev); mfc_dev 1259 drivers/media/platform/s5p-mfc/s5p_mfc.c if (exynos_is_iommu_available(dev) || !IS_TWOPORT(mfc_dev)) mfc_dev 1260 drivers/media/platform/s5p-mfc/s5p_mfc.c s5p_mfc_unconfigure_common_memory(mfc_dev); mfc_dev 1262 drivers/media/platform/s5p-mfc/s5p_mfc.c s5p_mfc_unconfigure_2port_memory(mfc_dev);