#include <linux/bitops.h>
#include <linux/dma-mapping.h>
#include <linux/platform_device.h>
#include <linux/sizes.h>
#include <linux/slab.h>
#include "etnaviv_gpu.h"
#include "etnaviv_mmu.h"
#include "state_hi.xml.h"
#define PT_SIZE …
#define PT_ENTRIES …
#define GPU_MEM_START …
struct etnaviv_iommuv1_context { … };
static struct etnaviv_iommuv1_context *
to_v1_context(struct etnaviv_iommu_context *context)
{ … }
static void etnaviv_iommuv1_free(struct etnaviv_iommu_context *context)
{ … }
static int etnaviv_iommuv1_map(struct etnaviv_iommu_context *context,
unsigned long iova, phys_addr_t paddr,
size_t size, int prot)
{ … }
static size_t etnaviv_iommuv1_unmap(struct etnaviv_iommu_context *context,
unsigned long iova, size_t size)
{ … }
static size_t etnaviv_iommuv1_dump_size(struct etnaviv_iommu_context *context)
{ … }
static void etnaviv_iommuv1_dump(struct etnaviv_iommu_context *context,
void *buf)
{ … }
static void etnaviv_iommuv1_restore(struct etnaviv_gpu *gpu,
struct etnaviv_iommu_context *context)
{ … }
const struct etnaviv_iommu_ops etnaviv_iommuv1_ops = …;
struct etnaviv_iommu_context *
etnaviv_iommuv1_context_alloc(struct etnaviv_iommu_global *global)
{ … }