msm_mmu
struct msm_mmu *mmu = a2xx_gpummu_new(&pdev->dev, gpu);
struct msm_mmu *a2xx_gpummu_new(struct device *dev, struct msm_gpu *gpu);
void a2xx_gpummu_params(struct msm_mmu *mmu, dma_addr_t *pt_base,
void a2xx_gpummu_params(struct msm_mmu *mmu, dma_addr_t *pt_base,
struct msm_mmu base;
static void a2xx_gpummu_detach(struct msm_mmu *mmu)
static int a2xx_gpummu_map(struct msm_mmu *mmu, uint64_t iova,
static int a2xx_gpummu_unmap(struct msm_mmu *mmu, uint64_t iova, size_t len)
static void a2xx_gpummu_destroy(struct msm_mmu *mmu)
struct msm_mmu *a2xx_gpummu_new(struct device *dev, struct msm_gpu *gpu)
struct msm_mmu *mmu = to_msm_vm(gmu->vm)->mmu;
struct msm_mmu *mmu;
struct msm_mmu *mmu;
struct msm_mmu *mmu;
struct msm_mmu *mmu = to_msm_vm(gpu->vm)->mmu;
struct msm_mmu *mmu = to_msm_vm(gpu->vm)->mmu;
struct msm_mmu *mmu;
struct msm_mmu *mmu = to_msm_vm(kms->vm)->mmu;
struct msm_mmu *mmu = to_msm_vm(kms->vm)->mmu;
int msm_register_mmu(struct drm_device *dev, struct msm_mmu *mmu);
void msm_unregister_mmu(struct drm_device *dev, struct msm_mmu *mmu);
struct msm_mmu;
struct msm_mmu *mmu;
msm_gem_vm_create(struct drm_device *drm, struct msm_mmu *mmu, const char *name,
struct msm_mmu *mmu = to_msm_vm(job->vm)->mmu;
struct msm_mmu *mmu = vm->mmu;
msm_gem_vm_create(struct drm_device *drm, struct msm_mmu *mmu, const char *name,
struct msm_mmu *mmu = to_msm_vm(gpu->vm)->mmu;
struct msm_mmu *mmu = to_msm_vm(submit->vm)->mmu;
static int msm_iommu_pagetable_unmap(struct msm_mmu *mmu, u64 iova,
static int msm_iommu_pagetable_map_prr(struct msm_mmu *mmu, u64 iova, size_t len, int prot)
struct msm_mmu base;
static int msm_iommu_pagetable_map(struct msm_mmu *mmu, u64 iova,
static void msm_iommu_pagetable_destroy(struct msm_mmu *mmu)
int msm_iommu_pagetable_params(struct msm_mmu *mmu,
struct iommu_domain_geometry *msm_iommu_get_geometry(struct msm_mmu *mmu)
msm_iommu_pagetable_walk(struct msm_mmu *mmu, unsigned long iova, uint64_t ptes[4])
struct msm_mmu base;
struct msm_mmu *parent;
msm_iommu_pagetable_prealloc_count(struct msm_mmu *mmu, struct msm_mmu_prealloc *p,
get_pt_cache(struct msm_mmu *mmu)
msm_iommu_pagetable_prealloc_allocate(struct msm_mmu *mmu, struct msm_mmu_prealloc *p)
msm_iommu_pagetable_prealloc_cleanup(struct msm_mmu *mmu, struct msm_mmu_prealloc *p)
static struct msm_iommu_pagetable *to_pagetable(struct msm_mmu *mmu)
struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent, bool kernel_managed)
static void msm_iommu_set_stall(struct msm_mmu *mmu, bool enable)
static void msm_iommu_detach(struct msm_mmu *mmu)
static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova,
static int msm_iommu_unmap(struct msm_mmu *mmu, uint64_t iova, size_t len)
static void msm_iommu_destroy(struct msm_mmu *mmu)
struct msm_mmu *msm_iommu_new(struct device *dev, unsigned long quirks)
struct msm_mmu *msm_iommu_disp_new(struct device *dev, unsigned long quirks)
struct msm_mmu *mmu;
struct msm_mmu *msm_iommu_gpu_new(struct device *dev, struct msm_gpu *gpu, unsigned long quirks)
struct msm_mmu *mmu;
struct msm_mmu *mmu;
struct msm_mmu;
void (*detach)(struct msm_mmu *mmu);
void (*prealloc_count)(struct msm_mmu *mmu, struct msm_mmu_prealloc *p,
int (*prealloc_allocate)(struct msm_mmu *mmu, struct msm_mmu_prealloc *p);
void (*prealloc_cleanup)(struct msm_mmu *mmu, struct msm_mmu_prealloc *p);
int (*map)(struct msm_mmu *mmu, uint64_t iova, struct sg_table *sgt,
int (*unmap)(struct msm_mmu *mmu, uint64_t iova, size_t len);
void (*destroy)(struct msm_mmu *mmu);
void (*set_stall)(struct msm_mmu *mmu, bool enable);
static inline void msm_mmu_init(struct msm_mmu *mmu, struct device *dev,
struct msm_mmu *msm_iommu_new(struct device *dev, unsigned long quirks);
struct msm_mmu *msm_iommu_gpu_new(struct device *dev, struct msm_gpu *gpu, unsigned long quirks);
struct msm_mmu *msm_iommu_disp_new(struct device *dev, unsigned long quirks);
static inline void msm_mmu_set_fault_handler(struct msm_mmu *mmu, void *arg,
struct msm_mmu *msm_iommu_pagetable_create(struct msm_mmu *parent, bool kernel_managed);
int msm_iommu_pagetable_params(struct msm_mmu *mmu, phys_addr_t *ttbr,
int msm_iommu_pagetable_walk(struct msm_mmu *mmu, unsigned long iova, uint64_t ptes[4]);
struct iommu_domain_geometry *msm_iommu_get_geometry(struct msm_mmu *mmu);