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