]>
git.ipfire.org Git - people/arne_f/kernel.git/blob - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/priv.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __NVKM_MMU_PRIV_H__
3 #define __NVKM_MMU_PRIV_H__
4 #define nvkm_mmu(p) container_of((p), struct nvkm_mmu, subdev)
5 #include <subdev/mmu.h>
7 void nvkm_mmu_ctor(const struct nvkm_mmu_func
*, struct nvkm_device
*,
8 int index
, struct nvkm_mmu
*);
9 int nvkm_mmu_new_(const struct nvkm_mmu_func
*, struct nvkm_device
*,
10 int index
, struct nvkm_mmu
**);
12 struct nvkm_mmu_func
{
13 void *(*dtor
)(struct nvkm_mmu
*);
14 int (*oneinit
)(struct nvkm_mmu
*);
15 void (*init
)(struct nvkm_mmu
*);
23 int (*create
)(struct nvkm_mmu
*, u64 offset
, u64 length
, u64 mm_offset
,
24 struct lock_class_key
*, struct nvkm_vm
**);
26 void (*map_pgt
)(struct nvkm_gpuobj
*pgd
, u32 pde
,
27 struct nvkm_memory
*pgt
[2]);
28 void (*map
)(struct nvkm_vma
*, struct nvkm_memory
*,
29 struct nvkm_mem
*, u32 pte
, u32 cnt
,
31 void (*map_sg
)(struct nvkm_vma
*, struct nvkm_memory
*,
32 struct nvkm_mem
*, u32 pte
, u32 cnt
, dma_addr_t
*);
33 void (*unmap
)(struct nvkm_vma
*, struct nvkm_memory
*pgt
,
35 void (*flush
)(struct nvkm_vm
*);
38 int nvkm_vm_create(struct nvkm_mmu
*, u64
, u64
, u64
, u32
,
39 struct lock_class_key
*, struct nvkm_vm
**);