1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */ 2bb23f9d7SBen Skeggs #ifndef __NVKM_BUS_PRIV_H__ 3bb23f9d7SBen Skeggs #define __NVKM_BUS_PRIV_H__ 4bb23f9d7SBen Skeggs #define nvkm_bus(p) container_of((p), struct nvkm_bus, subdev) 5bb23f9d7SBen Skeggs #include <subdev/bus.h> 6bb23f9d7SBen Skeggs 7bb23f9d7SBen Skeggs struct nvkm_bus_func { 8bb23f9d7SBen Skeggs void (*init)(struct nvkm_bus *); 9bb23f9d7SBen Skeggs void (*intr)(struct nvkm_bus *); 10bb23f9d7SBen Skeggs int (*hwsq_exec)(struct nvkm_bus *, u32 *, u32); 11bb23f9d7SBen Skeggs u32 hwsq_size; 12bb23f9d7SBen Skeggs }; 13bb23f9d7SBen Skeggs 14*d37766e5SBen Skeggs int nvkm_bus_new_(const struct nvkm_bus_func *, struct nvkm_device *, enum nvkm_subdev_type, int, 15bb23f9d7SBen Skeggs struct nvkm_bus **); 16bb23f9d7SBen Skeggs 17bb23f9d7SBen Skeggs void nv50_bus_init(struct nvkm_bus *); 18bb23f9d7SBen Skeggs void nv50_bus_intr(struct nvkm_bus *); 19bb23f9d7SBen Skeggs #endif 20