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