xref: /linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/priv.h (revision 3cd7924e0eddfd525ea532397932005d0ff2686b)
1 /* SPDX-License-Identifier: MIT */
2 #ifndef __NVKM_GSP_PRIV_H__
3 #define __NVKM_GSP_PRIV_H__
4 #include <subdev/gsp.h>
5 enum nvkm_acr_lsf_id;
6 
7 struct nvkm_gsp_fwif {
8 	int version;
9 	int (*load)(struct nvkm_gsp *, int ver, const struct nvkm_gsp_fwif *);
10 	const struct nvkm_gsp_func *func;
11 };
12 
13 int gv100_gsp_nofw(struct nvkm_gsp *, int, const struct nvkm_gsp_fwif *);
14 
15 struct nvkm_gsp_func {
16 	const struct nvkm_falcon_func *flcn;
17 
18 	void (*dtor)(struct nvkm_gsp *);
19 	int (*oneinit)(struct nvkm_gsp *);
20 	int (*init)(struct nvkm_gsp *);
21 	int (*fini)(struct nvkm_gsp *, bool suspend);
22 };
23 
24 int nvkm_gsp_new_(const struct nvkm_gsp_fwif *, struct nvkm_device *, enum nvkm_subdev_type, int,
25 		  struct nvkm_gsp **);
26 
27 extern const struct nvkm_gsp_func gv100_gsp;
28 #endif
29