]>
git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/priv.h
9d7ff166e505470b38119f9f869425d2f9f738ea
1 #ifndef __NVKM_MMU_PRIV_H__
2 #define __NVKM_MMU_PRIV_H__
3 #define nvkm_mmu(p) container_of((p), struct nvkm_mmu, subdev)
4 #include <subdev/mmu.h>
6 void nvkm_mmu_ctor(const struct nvkm_mmu_func
*, struct nvkm_device
*,
7 int index
, struct nvkm_mmu
*);
8 int nvkm_mmu_new_(const struct nvkm_mmu_func
*, struct nvkm_device
*,
9 int index
, struct nvkm_mmu
**);
11 struct nvkm_mmu_func
{
12 void (*init
)(struct nvkm_mmu
*);
19 struct nvkm_sclass user
;
23 struct nvkm_sclass user
;
24 int (*vram
)(struct nvkm_mmu
*, int type
, u8 page
, u64 size
,
25 void *argv
, u32 argc
, struct nvkm_memory
**);
26 int (*umap
)(struct nvkm_mmu
*, struct nvkm_memory
*, void *argv
,
27 u32 argc
, u64
*addr
, u64
*size
, struct nvkm_vma
**);
31 struct nvkm_sclass user
;
32 int (*ctor
)(struct nvkm_mmu
*, u64 addr
, u64 size
,
33 void *argv
, u32 argc
, struct lock_class_key
*,
34 const char *name
, struct nvkm_vmm
**);
39 const u8
*(*kind
)(struct nvkm_mmu
*, int *count
);
43 extern const struct nvkm_mmu_func nv04_mmu
;
45 const u8
*nv50_mmu_kind(struct nvkm_mmu
*, int *count
);
47 const u8
*gf100_mmu_kind(struct nvkm_mmu
*, int *count
);
49 const u8
*gm200_mmu_kind(struct nvkm_mmu
*, int *);
53 struct nvkm_mmu_ptc
*ptc
;
54 struct nvkm_mmu_ptp
*ptp
;
56 struct nvkm_memory
*memory
;
60 struct list_head head
;
63 void nvkm_mmu_ptc_dump(struct nvkm_mmu
*);
65 nvkm_mmu_ptc_get(struct nvkm_mmu
*, u32 size
, u32 align
, bool zero
);
66 void nvkm_mmu_ptc_put(struct nvkm_mmu
*, bool force
, struct nvkm_mmu_pt
**);