xref: /linux/drivers/gpu/drm/nouveau/nvkm/subdev/bus/priv.h (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
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