1 /* SPDX-License-Identifier: MIT */
2 #ifndef __NVKM_VFN_H__
3 #define __NVKM_VFN_H__
4 #include <core/subdev.h>
5 
6 struct nvkm_vfn {
7 	const struct nvkm_vfn_func *func;
8 	struct nvkm_subdev subdev;
9 
10 	struct {
11 		u32 priv;
12 		u32 user;
13 	} addr;
14 
15 	struct nvkm_intr intr;
16 
17 	struct nvkm_device_oclass user;
18 };
19 
20 int gv100_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
21 int tu102_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
22 int ga100_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
23 #endif
24