xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/nouveau/nvkm/engine/sec2/priv.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: priv.h,v 1.2 2021/12/18 23:45:37 riastradh Exp $	*/
2 
3 /* SPDX-License-Identifier: MIT */
4 #ifndef __NVKM_SEC2_PRIV_H__
5 #define __NVKM_SEC2_PRIV_H__
6 #include <engine/sec2.h>
7 
8 struct nvkm_sec2_func {
9 	const struct nvkm_falcon_func *flcn;
10 	u8 unit_acr;
11 	void (*intr)(struct nvkm_sec2 *);
12 	int (*initmsg)(struct nvkm_sec2 *);
13 };
14 
15 void gp102_sec2_intr(struct nvkm_sec2 *);
16 int gp102_sec2_initmsg(struct nvkm_sec2 *);
17 
18 struct nvkm_sec2_fwif {
19 	int version;
20 	int (*load)(struct nvkm_sec2 *, int ver, const struct nvkm_sec2_fwif *);
21 	const struct nvkm_sec2_func *func;
22 	const struct nvkm_acr_lsf_func *acr;
23 };
24 
25 int gp102_sec2_load(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *);
26 extern const struct nvkm_sec2_func gp102_sec2;
27 extern const struct nvkm_acr_lsf_func gp102_sec2_acr_1;
28 
29 int nvkm_sec2_new_(const struct nvkm_sec2_fwif *, struct nvkm_device *,
30 		   int, u32 addr, struct nvkm_sec2 **);
31 #endif
32