xref: /linux/drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h (revision 0883c2c06fb5bcf5b9e008270827e63c09a88c1e)
1 #ifndef __NVKM_BUS_H__
2 #define __NVKM_BUS_H__
3 #include <core/subdev.h>
4 
5 struct nvkm_bus {
6 	const struct nvkm_bus_func *func;
7 	struct nvkm_subdev subdev;
8 };
9 
10 /* interface to sequencer */
11 struct nvkm_hwsq;
12 int  nvkm_hwsq_init(struct nvkm_subdev *, struct nvkm_hwsq **);
13 int  nvkm_hwsq_fini(struct nvkm_hwsq **, bool exec);
14 void nvkm_hwsq_wr32(struct nvkm_hwsq *, u32 addr, u32 data);
15 void nvkm_hwsq_setf(struct nvkm_hwsq *, u8 flag, int data);
16 void nvkm_hwsq_wait(struct nvkm_hwsq *, u8 flag, u8 data);
17 void nvkm_hwsq_wait_vblank(struct nvkm_hwsq *);
18 void nvkm_hwsq_nsec(struct nvkm_hwsq *, u32 nsec);
19 
20 int nv04_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
21 int nv31_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
22 int nv50_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
23 int g94_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
24 int gf100_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
25 #endif
26