Commit | Line | Data |
---|---|---|
e3c71eb2 BS |
1 | #ifndef __NVKM_GR_H__ |
2 | #define __NVKM_GR_H__ | |
e3c71eb2 | 3 | #include <core/engine.h> |
b8bf04e1 | 4 | |
e3c71eb2 | 5 | struct nvkm_gr { |
bfee3f3d | 6 | struct nvkm_engine engine; |
27f3d6cf | 7 | const struct nvkm_gr_func *func; |
b8bf04e1 BS |
8 | |
9 | /* Returns chipset-specific counts of units packed into an u64. | |
10 | */ | |
e3c71eb2 | 11 | u64 (*units)(struct nvkm_gr *); |
b8bf04e1 BS |
12 | }; |
13 | ||
e3c71eb2 | 14 | #define nvkm_gr_create(p,e,c,y,d) \ |
27f3d6cf BS |
15 | nvkm_gr_create_((p), (e), (c), (y), sizeof(**d), (void **)(d)) |
16 | int | |
17 | nvkm_gr_create_(struct nvkm_object *parent, struct nvkm_object *engine, | |
18 | struct nvkm_oclass *oclass, bool enable, | |
19 | int length, void **pobject); | |
e3c71eb2 | 20 | #define nvkm_gr_destroy(d) \ |
bfee3f3d | 21 | nvkm_engine_destroy(&(d)->engine) |
e3c71eb2 | 22 | #define nvkm_gr_init(d) \ |
89c651e2 | 23 | nvkm_engine_init_old(&(d)->engine) |
e3c71eb2 | 24 | #define nvkm_gr_fini(d,s) \ |
89c651e2 | 25 | nvkm_engine_fini_old(&(d)->engine, (s)) |
b8bf04e1 | 26 | |
e3c71eb2 BS |
27 | #define _nvkm_gr_dtor _nvkm_engine_dtor |
28 | #define _nvkm_gr_init _nvkm_engine_init | |
29 | #define _nvkm_gr_fini _nvkm_engine_fini | |
b8bf04e1 | 30 | |
e3c71eb2 BS |
31 | extern struct nvkm_oclass nv04_gr_oclass; |
32 | extern struct nvkm_oclass nv10_gr_oclass; | |
33 | extern struct nvkm_oclass nv20_gr_oclass; | |
34 | extern struct nvkm_oclass nv25_gr_oclass; | |
35 | extern struct nvkm_oclass nv2a_gr_oclass; | |
36 | extern struct nvkm_oclass nv30_gr_oclass; | |
37 | extern struct nvkm_oclass nv34_gr_oclass; | |
38 | extern struct nvkm_oclass nv35_gr_oclass; | |
39 | extern struct nvkm_oclass nv40_gr_oclass; | |
40 | extern struct nvkm_oclass nv50_gr_oclass; | |
41 | extern struct nvkm_oclass *gf100_gr_oclass; | |
42 | extern struct nvkm_oclass *gf108_gr_oclass; | |
43 | extern struct nvkm_oclass *gf104_gr_oclass; | |
44 | extern struct nvkm_oclass *gf110_gr_oclass; | |
45 | extern struct nvkm_oclass *gf117_gr_oclass; | |
46 | extern struct nvkm_oclass *gf119_gr_oclass; | |
47 | extern struct nvkm_oclass *gk104_gr_oclass; | |
48 | extern struct nvkm_oclass *gk20a_gr_oclass; | |
49 | extern struct nvkm_oclass *gk110_gr_oclass; | |
50 | extern struct nvkm_oclass *gk110b_gr_oclass; | |
51 | extern struct nvkm_oclass *gk208_gr_oclass; | |
52 | extern struct nvkm_oclass *gm107_gr_oclass; | |
3fed3ea9 | 53 | extern struct nvkm_oclass *gm204_gr_oclass; |
426b20e4 | 54 | extern struct nvkm_oclass *gm206_gr_oclass; |
a032fb9d | 55 | extern struct nvkm_oclass *gm20b_gr_oclass; |
b8bf04e1 | 56 | |
e3c71eb2 | 57 | #include <core/enum.h> |
b8bf04e1 | 58 | |
e3c71eb2 | 59 | extern const struct nvkm_bitfield nv04_gr_nsource[]; |
27f3d6cf | 60 | bool nv04_gr_idle(struct nvkm_gr *); |
b8bf04e1 | 61 | |
e3c71eb2 BS |
62 | extern const struct nvkm_bitfield nv10_gr_intr_name[]; |
63 | extern const struct nvkm_bitfield nv10_gr_nstatus[]; | |
b8bf04e1 | 64 | |
e3c71eb2 | 65 | extern const struct nvkm_enum nv50_data_error_names[]; |
b8bf04e1 | 66 | #endif |