Merge tag 'drm-next-2019-07-19' of git://anongit.freedesktop.org/drm/drm
[sfrench/cifs-2.6.git] / drivers / gpu / drm / nouveau / include / nvkm / subdev / bus.h
1 /* SPDX-License-Identifier: MIT */
2 #ifndef __NVKM_BUS_H__
3 #define __NVKM_BUS_H__
4 #include <core/subdev.h>
5
6 struct nvkm_bus {
7         const struct nvkm_bus_func *func;
8         struct nvkm_subdev subdev;
9 };
10
11 /* interface to sequencer */
12 struct nvkm_hwsq;
13 int  nvkm_hwsq_init(struct nvkm_subdev *, struct nvkm_hwsq **);
14 int  nvkm_hwsq_fini(struct nvkm_hwsq **, bool exec);
15 void nvkm_hwsq_wr32(struct nvkm_hwsq *, u32 addr, u32 data);
16 void nvkm_hwsq_setf(struct nvkm_hwsq *, u8 flag, int data);
17 void nvkm_hwsq_wait(struct nvkm_hwsq *, u8 flag, u8 data);
18 void nvkm_hwsq_wait_vblank(struct nvkm_hwsq *);
19 void nvkm_hwsq_nsec(struct nvkm_hwsq *, u32 nsec);
20
21 int nv04_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
22 int nv31_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
23 int nv50_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
24 int g94_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
25 int gf100_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
26 #endif