drm/nouveau/core/memory: add mechanism to retrieve allocation granularity
authorBen Skeggs <bskeggs@redhat.com>
Tue, 31 Oct 2017 17:56:19 +0000 (03:56 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 2 Nov 2017 03:32:22 +0000 (13:32 +1000)
Needed by VMM code to determine whether an allocation is compatible with
a given page size (ie. you can't map 4KiB system memory pages into 64KiB
GPU pages).

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/core/memory.h

index 41bc89af11c0319bdcf88daf7e0daa76eadfd774..a0bfc37b96db09c6a28061dc8816a43c98d0a4e3 100644 (file)
@@ -26,6 +26,7 @@ struct nvkm_memory {
 struct nvkm_memory_func {
        void *(*dtor)(struct nvkm_memory *);
        enum nvkm_memory_target (*target)(struct nvkm_memory *);
+       u8 (*page)(struct nvkm_memory *);
        u64 (*addr)(struct nvkm_memory *);
        u64 (*size)(struct nvkm_memory *);
        void (*boot)(struct nvkm_memory *, struct nvkm_vmm *);
@@ -51,6 +52,7 @@ void nvkm_memory_tags_put(struct nvkm_memory *, struct nvkm_device *,
                          struct nvkm_tags **);
 
 #define nvkm_memory_target(p) (p)->func->target(p)
+#define nvkm_memory_page(p) (p)->func->page(p)
 #define nvkm_memory_addr(p) (p)->func->addr(p)
 #define nvkm_memory_size(p) (p)->func->size(p)
 #define nvkm_memory_boot(p,v) (p)->func->boot((p),(v))