0001
0002 #ifndef __NVKM_BUS_H__
0003 #define __NVKM_BUS_H__
0004 #include <core/subdev.h>
0005
0006 struct nvkm_bus {
0007 const struct nvkm_bus_func *func;
0008 struct nvkm_subdev subdev;
0009 };
0010
0011
0012 struct nvkm_hwsq;
0013 int nvkm_hwsq_init(struct nvkm_subdev *, struct nvkm_hwsq **);
0014 int nvkm_hwsq_fini(struct nvkm_hwsq **, bool exec);
0015 void nvkm_hwsq_wr32(struct nvkm_hwsq *, u32 addr, u32 data);
0016 void nvkm_hwsq_setf(struct nvkm_hwsq *, u8 flag, int data);
0017 void nvkm_hwsq_wait(struct nvkm_hwsq *, u8 flag, u8 data);
0018 void nvkm_hwsq_wait_vblank(struct nvkm_hwsq *);
0019 void nvkm_hwsq_nsec(struct nvkm_hwsq *, u32 nsec);
0020
0021 int nv04_bus_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bus **);
0022 int nv31_bus_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bus **);
0023 int nv50_bus_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bus **);
0024 int g94_bus_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bus **);
0025 int gf100_bus_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bus **);
0026 #endif