bus.h 972 B

1234567891011121314151617181920212223242526
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __NVKM_BUS_H__
  3. #define __NVKM_BUS_H__
  4. #include <core/subdev.h>
  5. struct nvkm_bus {
  6. const struct nvkm_bus_func *func;
  7. struct nvkm_subdev subdev;
  8. };
  9. /* interface to sequencer */
  10. struct nvkm_hwsq;
  11. int nvkm_hwsq_init(struct nvkm_subdev *, struct nvkm_hwsq **);
  12. int nvkm_hwsq_fini(struct nvkm_hwsq **, bool exec);
  13. void nvkm_hwsq_wr32(struct nvkm_hwsq *, u32 addr, u32 data);
  14. void nvkm_hwsq_setf(struct nvkm_hwsq *, u8 flag, int data);
  15. void nvkm_hwsq_wait(struct nvkm_hwsq *, u8 flag, u8 data);
  16. void nvkm_hwsq_wait_vblank(struct nvkm_hwsq *);
  17. void nvkm_hwsq_nsec(struct nvkm_hwsq *, u32 nsec);
  18. int nv04_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
  19. int nv31_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
  20. int nv50_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
  21. int g94_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
  22. int gf100_bus_new(struct nvkm_device *, int, struct nvkm_bus **);
  23. #endif