| .. | .. |
|---|
| 1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
|---|
| 1 | +/* SPDX-License-Identifier: MIT */ |
|---|
| 2 | 2 | #ifndef __NVKM_SEC2_PRIV_H__ |
|---|
| 3 | 3 | #define __NVKM_SEC2_PRIV_H__ |
|---|
| 4 | 4 | #include <engine/sec2.h> |
|---|
| 5 | 5 | |
|---|
| 6 | | -#define nvkm_sec2(p) container_of((p), struct nvkm_sec2, engine) |
|---|
| 6 | +struct nvkm_sec2_func { |
|---|
| 7 | + const struct nvkm_falcon_func *flcn; |
|---|
| 8 | + u8 unit_acr; |
|---|
| 9 | + void (*intr)(struct nvkm_sec2 *); |
|---|
| 10 | + int (*initmsg)(struct nvkm_sec2 *); |
|---|
| 11 | +}; |
|---|
| 7 | 12 | |
|---|
| 8 | | -int nvkm_sec2_new_(struct nvkm_device *, int, struct nvkm_sec2 **); |
|---|
| 13 | +void gp102_sec2_intr(struct nvkm_sec2 *); |
|---|
| 14 | +int gp102_sec2_initmsg(struct nvkm_sec2 *); |
|---|
| 9 | 15 | |
|---|
| 16 | +struct nvkm_sec2_fwif { |
|---|
| 17 | + int version; |
|---|
| 18 | + int (*load)(struct nvkm_sec2 *, int ver, const struct nvkm_sec2_fwif *); |
|---|
| 19 | + const struct nvkm_sec2_func *func; |
|---|
| 20 | + const struct nvkm_acr_lsf_func *acr; |
|---|
| 21 | +}; |
|---|
| 22 | + |
|---|
| 23 | +int gp102_sec2_nofw(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *); |
|---|
| 24 | +int gp102_sec2_load(struct nvkm_sec2 *, int, const struct nvkm_sec2_fwif *); |
|---|
| 25 | +extern const struct nvkm_sec2_func gp102_sec2; |
|---|
| 26 | +extern const struct nvkm_acr_lsf_func gp102_sec2_acr_1; |
|---|
| 27 | + |
|---|
| 28 | +int nvkm_sec2_new_(const struct nvkm_sec2_fwif *, struct nvkm_device *, |
|---|
| 29 | + int, u32 addr, struct nvkm_sec2 **); |
|---|
| 10 | 30 | #endif |
|---|