brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · e158a40 Raw
39 lines · c
1/* SPDX-License-Identifier: MIT */2#ifndef __NVKM_SEC2_PRIV_H__3#define __NVKM_SEC2_PRIV_H__4#include <engine/sec2.h>5struct nvkm_acr_lsfw;6 7int r535_sec2_new(const struct nvkm_sec2_func *,8		  struct nvkm_device *, enum nvkm_subdev_type, int, u32 addr, struct nvkm_sec2 **);9 10struct nvkm_sec2_func {11	const struct nvkm_falcon_func *flcn;12	u8 unit_unload;13	u8 unit_acr;14	struct nvkm_intr *(*intr_vector)(struct nvkm_sec2 *, enum nvkm_intr_type *);15	irqreturn_t (*intr)(struct nvkm_inth *);16	int (*initmsg)(struct nvkm_sec2 *);17};18 19irqreturn_t gp102_sec2_intr(struct nvkm_inth *);20int gp102_sec2_initmsg(struct nvkm_sec2 *);21 22struct nvkm_sec2_fwif {23	int version;24	int (*load)(struct nvkm_sec2 *, int ver, const struct nvkm_sec2_fwif *);25	const struct nvkm_sec2_func *func;26	const struct nvkm_acr_lsf_func *acr;27};28 29int gp102_sec2_nofw(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *);30int gp102_sec2_load(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *);31extern const struct nvkm_sec2_func gp102_sec2;32extern const struct nvkm_acr_lsf_func gp102_sec2_acr_1;33void gp102_sec2_acr_bld_write_1(struct nvkm_acr *, u32, struct nvkm_acr_lsfw *);34void gp102_sec2_acr_bld_patch_1(struct nvkm_acr *, u32, s64);35 36int nvkm_sec2_new_(const struct nvkm_sec2_fwif *, struct nvkm_device *, enum nvkm_subdev_type,37		   int, u32 addr, struct nvkm_sec2 **);38#endif39