]>
Commit | Line | Data |
---|---|---|
e3c71eb2 BS |
1 | #ifndef __NVKM_GR_H__ |
2 | #define __NVKM_GR_H__ | |
b8bf04e1 | 3 | #include <core/engctx.h> |
b8bf04e1 | 4 | |
e3c71eb2 BS |
5 | struct nvkm_gr_chan { |
6 | struct nvkm_engctx base; | |
b8bf04e1 BS |
7 | }; |
8 | ||
e3c71eb2 BS |
9 | #define nvkm_gr_context_create(p,e,c,g,s,a,f,d) \ |
10 | nvkm_engctx_create((p), (e), (c), (g), (s), (a), (f), (d)) | |
11 | #define nvkm_gr_context_destroy(d) \ | |
12 | nvkm_engctx_destroy(&(d)->base) | |
13 | #define nvkm_gr_context_init(d) \ | |
14 | nvkm_engctx_init(&(d)->base) | |
15 | #define nvkm_gr_context_fini(d,s) \ | |
16 | nvkm_engctx_fini(&(d)->base, (s)) | |
17 | ||
18 | #define _nvkm_gr_context_dtor _nvkm_engctx_dtor | |
19 | #define _nvkm_gr_context_init _nvkm_engctx_init | |
20 | #define _nvkm_gr_context_fini _nvkm_engctx_fini | |
21 | #define _nvkm_gr_context_rd32 _nvkm_engctx_rd32 | |
22 | #define _nvkm_gr_context_wr32 _nvkm_engctx_wr32 | |
b8bf04e1 | 23 | |
e3c71eb2 | 24 | #include <core/engine.h> |
b8bf04e1 | 25 | |
e3c71eb2 BS |
26 | struct nvkm_gr { |
27 | struct nvkm_engine base; | |
b8bf04e1 BS |
28 | |
29 | /* Returns chipset-specific counts of units packed into an u64. | |
30 | */ | |
e3c71eb2 | 31 | u64 (*units)(struct nvkm_gr *); |
b8bf04e1 BS |
32 | }; |
33 | ||
e3c71eb2 BS |
34 | static inline struct nvkm_gr * |
35 | nvkm_gr(void *obj) | |
b8bf04e1 | 36 | { |
e3c71eb2 | 37 | return (void *)nvkm_engine(obj, NVDEV_ENGINE_GR); |
b8bf04e1 BS |
38 | } |
39 | ||
e3c71eb2 BS |
40 | #define nvkm_gr_create(p,e,c,y,d) \ |
41 | nvkm_engine_create((p), (e), (c), (y), "PGR", "graphics", (d)) | |
42 | #define nvkm_gr_destroy(d) \ | |
43 | nvkm_engine_destroy(&(d)->base) | |
44 | #define nvkm_gr_init(d) \ | |
45 | nvkm_engine_init(&(d)->base) | |
46 | #define nvkm_gr_fini(d,s) \ | |
47 | nvkm_engine_fini(&(d)->base, (s)) | |
b8bf04e1 | 48 | |
e3c71eb2 BS |
49 | #define _nvkm_gr_dtor _nvkm_engine_dtor |
50 | #define _nvkm_gr_init _nvkm_engine_init | |
51 | #define _nvkm_gr_fini _nvkm_engine_fini | |
b8bf04e1 | 52 | |
e3c71eb2 BS |
53 | extern struct nvkm_oclass nv04_gr_oclass; |
54 | extern struct nvkm_oclass nv10_gr_oclass; | |
55 | extern struct nvkm_oclass nv20_gr_oclass; | |
56 | extern struct nvkm_oclass nv25_gr_oclass; | |
57 | extern struct nvkm_oclass nv2a_gr_oclass; | |
58 | extern struct nvkm_oclass nv30_gr_oclass; | |
59 | extern struct nvkm_oclass nv34_gr_oclass; | |
60 | extern struct nvkm_oclass nv35_gr_oclass; | |
61 | extern struct nvkm_oclass nv40_gr_oclass; | |
62 | extern struct nvkm_oclass nv50_gr_oclass; | |
63 | extern struct nvkm_oclass *gf100_gr_oclass; | |
64 | extern struct nvkm_oclass *gf108_gr_oclass; | |
65 | extern struct nvkm_oclass *gf104_gr_oclass; | |
66 | extern struct nvkm_oclass *gf110_gr_oclass; | |
67 | extern struct nvkm_oclass *gf117_gr_oclass; | |
68 | extern struct nvkm_oclass *gf119_gr_oclass; | |
69 | extern struct nvkm_oclass *gk104_gr_oclass; | |
70 | extern struct nvkm_oclass *gk20a_gr_oclass; | |
71 | extern struct nvkm_oclass *gk110_gr_oclass; | |
72 | extern struct nvkm_oclass *gk110b_gr_oclass; | |
73 | extern struct nvkm_oclass *gk208_gr_oclass; | |
74 | extern struct nvkm_oclass *gm107_gr_oclass; | |
b8bf04e1 | 75 | |
e3c71eb2 | 76 | #include <core/enum.h> |
b8bf04e1 | 77 | |
e3c71eb2 BS |
78 | extern const struct nvkm_bitfield nv04_gr_nsource[]; |
79 | extern struct nvkm_ofuncs nv04_gr_ofuncs; | |
80 | bool nv04_gr_idle(void *obj); | |
b8bf04e1 | 81 | |
e3c71eb2 BS |
82 | extern const struct nvkm_bitfield nv10_gr_intr_name[]; |
83 | extern const struct nvkm_bitfield nv10_gr_nstatus[]; | |
b8bf04e1 | 84 | |
e3c71eb2 | 85 | extern const struct nvkm_enum nv50_data_error_names[]; |
b8bf04e1 | 86 | #endif |