xref: /openbmc/linux/drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */
2e3c71eb2SBen Skeggs #ifndef __NVKM_GR_H__
3e3c71eb2SBen Skeggs #define __NVKM_GR_H__
4e3c71eb2SBen Skeggs #include <core/engine.h>
5e3c71eb2SBen Skeggs 
6e3c71eb2SBen Skeggs struct nvkm_gr {
727f3d6cfSBen Skeggs 	const struct nvkm_gr_func *func;
8c85ee6caSBen Skeggs 	struct nvkm_engine engine;
9b8bf04e1SBen Skeggs };
10b8bf04e1SBen Skeggs 
11c85ee6caSBen Skeggs u64 nvkm_gr_units(struct nvkm_gr *);
12c85ee6caSBen Skeggs int nvkm_gr_tlb_flush(struct nvkm_gr *);
13169f30b3SBen Skeggs int nvkm_gr_ctxsw_pause(struct nvkm_device *);
14169f30b3SBen Skeggs int nvkm_gr_ctxsw_resume(struct nvkm_device *);
15ae5ea7f6SBen Skeggs u32 nvkm_gr_ctxsw_inst(struct nvkm_device *);
16b8bf04e1SBen Skeggs 
17864d37c3SBen Skeggs int nv04_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
18864d37c3SBen Skeggs int nv10_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
19864d37c3SBen Skeggs int nv15_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
20864d37c3SBen Skeggs int nv17_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
21864d37c3SBen Skeggs int nv20_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
22864d37c3SBen Skeggs int nv25_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
23864d37c3SBen Skeggs int nv2a_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
24864d37c3SBen Skeggs int nv30_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
25864d37c3SBen Skeggs int nv34_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
26864d37c3SBen Skeggs int nv35_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
27864d37c3SBen Skeggs int nv40_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
28864d37c3SBen Skeggs int nv44_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
29864d37c3SBen Skeggs int nv50_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
30864d37c3SBen Skeggs int g84_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
31864d37c3SBen Skeggs int gt200_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
32864d37c3SBen Skeggs int mcp79_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
33864d37c3SBen Skeggs int gt215_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
34864d37c3SBen Skeggs int mcp89_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
35864d37c3SBen Skeggs int gf100_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
36864d37c3SBen Skeggs int gf104_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
37864d37c3SBen Skeggs int gf108_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
38864d37c3SBen Skeggs int gf110_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
39864d37c3SBen Skeggs int gf117_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
40864d37c3SBen Skeggs int gf119_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
41864d37c3SBen Skeggs int gk104_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
42864d37c3SBen Skeggs int gk110_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
43864d37c3SBen Skeggs int gk110b_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
44864d37c3SBen Skeggs int gk208_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
45864d37c3SBen Skeggs int gk20a_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
46864d37c3SBen Skeggs int gm107_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
47864d37c3SBen Skeggs int gm200_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
48864d37c3SBen Skeggs int gm20b_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
49864d37c3SBen Skeggs int gp100_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
50864d37c3SBen Skeggs int gp102_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
51864d37c3SBen Skeggs int gp104_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
52864d37c3SBen Skeggs int gp107_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
53864d37c3SBen Skeggs int gp108_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
54864d37c3SBen Skeggs int gp10b_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
55864d37c3SBen Skeggs int gv100_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
56864d37c3SBen Skeggs int tu102_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
57*c4bdac75SBen Skeggs int ga102_gr_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_gr **);
58b8bf04e1SBen Skeggs #endif
59