#include <linux/dma-mapping.h>
#include "msm_drv.h"
#include "msm_mmu.h"
#include "adreno_gpu.h"
#include "a2xx_gpu.h"
#include "a2xx.xml.h"
struct a2xx_gpummu { … };
#define to_a2xx_gpummu(x) …
#define GPUMMU_VA_START …
#define GPUMMU_VA_RANGE …
#define GPUMMU_PAGE_SIZE …
#define TABLE_SIZE …
static void a2xx_gpummu_detach(struct msm_mmu *mmu)
{ … }
static int a2xx_gpummu_map(struct msm_mmu *mmu, uint64_t iova,
struct sg_table *sgt, size_t len, int prot)
{ … }
static int a2xx_gpummu_unmap(struct msm_mmu *mmu, uint64_t iova, size_t len)
{ … }
static void a2xx_gpummu_resume_translation(struct msm_mmu *mmu)
{ … }
static void a2xx_gpummu_destroy(struct msm_mmu *mmu)
{ … }
static const struct msm_mmu_funcs funcs = …;
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,
dma_addr_t *tran_error)
{ … }