Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / include / nvkm / subdev / bar.h
1 #ifndef __NVKM_BAR_H__
2 #define __NVKM_BAR_H__
3 #include <core/subdev.h>
4 struct nvkm_mem;
5 struct nvkm_vma;
6
7 struct nvkm_bar {
8         struct nvkm_subdev base;
9
10         int  (*alloc)(struct nvkm_bar *, struct nvkm_object *,
11                       struct nvkm_mem *, struct nvkm_object **);
12
13         int  (*kmap)(struct nvkm_bar *, struct nvkm_mem *, u32 flags,
14                      struct nvkm_vma *);
15         int  (*umap)(struct nvkm_bar *, struct nvkm_mem *, u32 flags,
16                      struct nvkm_vma *);
17         void (*unmap)(struct nvkm_bar *, struct nvkm_vma *);
18         void (*flush)(struct nvkm_bar *);
19
20         /* whether the BAR supports to be ioremapped WC or should be uncached */
21         bool iomap_uncached;
22 };
23
24 static inline struct nvkm_bar *
25 nvkm_bar(void *obj)
26 {
27         return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_BAR);
28 }
29
30 extern struct nvkm_oclass nv50_bar_oclass;
31 extern struct nvkm_oclass gf100_bar_oclass;
32 extern struct nvkm_oclass gk20a_bar_oclass;
33 #endif