27 lines · c
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#endif27