drm/nouveau/gr: convert user classes to new-style nvkm_object
[deliverable/linux.git] / drivers / gpu / drm / nouveau / include / nvkm / engine / gr.h
CommitLineData
e3c71eb2
BS
1#ifndef __NVKM_GR_H__
2#define __NVKM_GR_H__
e3c71eb2 3#include <core/engine.h>
b8bf04e1 4
e3c71eb2 5struct 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))
16int
17nvkm_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
31extern struct nvkm_oclass nv04_gr_oclass;
32extern struct nvkm_oclass nv10_gr_oclass;
33extern struct nvkm_oclass nv20_gr_oclass;
34extern struct nvkm_oclass nv25_gr_oclass;
35extern struct nvkm_oclass nv2a_gr_oclass;
36extern struct nvkm_oclass nv30_gr_oclass;
37extern struct nvkm_oclass nv34_gr_oclass;
38extern struct nvkm_oclass nv35_gr_oclass;
39extern struct nvkm_oclass nv40_gr_oclass;
40extern struct nvkm_oclass nv50_gr_oclass;
41extern struct nvkm_oclass *gf100_gr_oclass;
42extern struct nvkm_oclass *gf108_gr_oclass;
43extern struct nvkm_oclass *gf104_gr_oclass;
44extern struct nvkm_oclass *gf110_gr_oclass;
45extern struct nvkm_oclass *gf117_gr_oclass;
46extern struct nvkm_oclass *gf119_gr_oclass;
47extern struct nvkm_oclass *gk104_gr_oclass;
48extern struct nvkm_oclass *gk20a_gr_oclass;
49extern struct nvkm_oclass *gk110_gr_oclass;
50extern struct nvkm_oclass *gk110b_gr_oclass;
51extern struct nvkm_oclass *gk208_gr_oclass;
52extern struct nvkm_oclass *gm107_gr_oclass;
3fed3ea9 53extern struct nvkm_oclass *gm204_gr_oclass;
426b20e4 54extern struct nvkm_oclass *gm206_gr_oclass;
a032fb9d 55extern struct nvkm_oclass *gm20b_gr_oclass;
b8bf04e1 56
e3c71eb2 57#include <core/enum.h>
b8bf04e1 58
e3c71eb2 59extern const struct nvkm_bitfield nv04_gr_nsource[];
27f3d6cf 60bool nv04_gr_idle(struct nvkm_gr *);
b8bf04e1 61
e3c71eb2
BS
62extern const struct nvkm_bitfield nv10_gr_intr_name[];
63extern const struct nvkm_bitfield nv10_gr_nstatus[];
b8bf04e1 64
e3c71eb2 65extern const struct nvkm_enum nv50_data_error_names[];
b8bf04e1 66#endif
This page took 0.061281 seconds and 5 git commands to generate.