These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / include / nvkm / engine / falcon.h
1 #ifndef __NVKM_FALCON_H__
2 #define __NVKM_FALCON_H__
3 #define nvkm_falcon(p) container_of((p), struct nvkm_falcon, engine)
4 #include <core/engine.h>
5 struct nvkm_fifo_chan;
6
7 struct nvkm_falcon {
8         const struct nvkm_falcon_func *func;
9         struct nvkm_engine engine;
10
11         u32 addr;
12         u8  version;
13         u8  secret;
14
15         struct nvkm_memory *core;
16         bool external;
17
18         struct {
19                 u32 limit;
20                 u32 *data;
21                 u32  size;
22         } code;
23
24         struct {
25                 u32 limit;
26                 u32 *data;
27                 u32  size;
28         } data;
29 };
30
31 int nvkm_falcon_new_(const struct nvkm_falcon_func *, struct nvkm_device *,
32                      int index, bool enable, u32 addr, struct nvkm_engine **);
33
34 struct nvkm_falcon_func {
35         struct {
36                 u32 *data;
37                 u32  size;
38         } code;
39         struct {
40                 u32 *data;
41                 u32  size;
42         } data;
43         u32 pmc_enable;
44         void (*init)(struct nvkm_falcon *);
45         void (*intr)(struct nvkm_falcon *, struct nvkm_fifo_chan *);
46         struct nvkm_sclass sclass[];
47 };
48 #endif