1/* SPDX-License-Identifier: MIT */
2#ifndef __NVKM_VFN_H__
3#define __NVKM_VFN_H__
4#include <core/subdev.h>
5
6struct 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
20int gv100_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
21int tu102_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
22int ga100_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
23#endif
24