gpu: ion: Map everything into IOMMU with 64K pages.
Due to performance issues with 4K pages and the IOMMU we should use 64K pages. However, minimum allocation from ION is 4K so instead of mapping on demand we need to map the full heap into the IOMMU when the first request for mapping comes. Only unmap everything from the IOMMU when the last buffer is freed. CRs-fixed: 348606 Change-Id: Ic1793f5caaff2f69bf1fb7e8c8b3bd03378131b8 Signed-off-by: Olav Haugan <ohaugan@codeaurora.org> [sboyd: drop board file, fmem, memory changes] Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
committed by
Stephen Boyd
parent
7fdaea2b50
commit
6c18ca537d
@@ -176,6 +176,8 @@ struct ion_platform_heap {
|
||||
* or not.
|
||||
* @fixed_position If nonzero, position in the fixed area.
|
||||
* @virt_addr: Virtual address used when using fmem.
|
||||
* @iommu_map_all: Indicates whether we should map whole heap into IOMMU.
|
||||
* @iommu_2x_map_domain: Indicates the domain to use for overmapping.
|
||||
* @request_region: function to be called when the number of allocations
|
||||
* goes from 0 -> 1
|
||||
* @release_region: function to be called when the number of allocations
|
||||
@@ -191,6 +193,8 @@ struct ion_cp_heap_pdata {
|
||||
int reusable;
|
||||
int mem_is_fmem;
|
||||
enum ion_fixed_position fixed_position;
|
||||
int iommu_map_all;
|
||||
int iommu_2x_map_domain;
|
||||
ion_virt_addr_t *virt_addr;
|
||||
int (*request_region)(void *);
|
||||
int (*release_region)(void *);
|
||||
|
||||
Reference in New Issue
Block a user