Merge "msm: camera: smmu: Remove extra shared mem map" into camera-kernel.lnx.4.0

This commit is contained in:
Camera Software Integration 2020-08-28 13:06:59 -07:00 • committed by Gerrit - the friendly Code Review server
commit 6c0556bd8a

View file

@ -1956,7 +1956,7 @@ static int cam_smmu_map_buffer_validate(struct dma_buf *buf,
} else {
CAM_ERR(CAM_SMMU, "Error: Wrong region id passed");
rc = -EINVAL;
goto err_unmap_sg;
goto err_detach;
}
CAM_DBG(CAM_SMMU,
@ -2012,6 +2012,10 @@ static int cam_smmu_map_buffer_validate(struct dma_buf *buf,
idx, buf, (void *)iommu_cb_set.cb_info[idx].dev,
(void *)*paddr_ptr, (unsigned int)*len_ptr);
/* Unmap the mapping in dma region as this is not used anyway */
if (region_id == CAM_SMMU_REGION_SHARED)
dma_buf_unmap_attachment(attach, table, dma_dir);
return 0;
err_alloc:
@ -2158,14 +2162,16 @@ static int cam_smmu_unmap_buf_and_remove_from_list(
iommu_cb_set.cb_info[idx].shared_mapping_size -=
mapping_info->len;
} else if (mapping_info->region_id == CAM_SMMU_REGION_IO) {
if (mapping_info->is_internal)
mapping_info->attach->dma_map_attrs |=
DMA_ATTR_SKIP_CPU_SYNC;
dma_buf_unmap_attachment(mapping_info->attach,
mapping_info->table, mapping_info->dir);
iommu_cb_set.cb_info[idx].io_mapping_size -= mapping_info->len;
}
if (mapping_info->is_internal)
mapping_info->attach->dma_map_attrs |= DMA_ATTR_SKIP_CPU_SYNC;
dma_buf_unmap_attachment(mapping_info->attach,
mapping_info->table, mapping_info->dir);
dma_buf_detach(mapping_info->buf, mapping_info->attach);
dma_buf_put(mapping_info->buf);