| .. | .. |
|---|
| 1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
|---|
| 2 | | -#ifndef __NVKM_FALCON_H__ |
|---|
| 3 | | -#define __NVKM_FALCON_H__ |
|---|
| 1 | +/* SPDX-License-Identifier: MIT */ |
|---|
| 2 | +#ifndef __NVKM_FLCNEN_H__ |
|---|
| 3 | +#define __NVKM_FLCNEN_H__ |
|---|
| 4 | 4 | #define nvkm_falcon(p) container_of((p), struct nvkm_falcon, engine) |
|---|
| 5 | 5 | #include <core/engine.h> |
|---|
| 6 | 6 | struct nvkm_fifo_chan; |
|---|
| .. | .. |
|---|
| 23 | 23 | |
|---|
| 24 | 24 | struct mutex mutex; |
|---|
| 25 | 25 | struct mutex dmem_mutex; |
|---|
| 26 | + bool oneinit; |
|---|
| 27 | + |
|---|
| 26 | 28 | const struct nvkm_subdev *user; |
|---|
| 27 | 29 | |
|---|
| 28 | 30 | u8 version; |
|---|
| 29 | 31 | u8 secret; |
|---|
| 30 | 32 | bool debug; |
|---|
| 31 | | - bool has_emem; |
|---|
| 32 | 33 | |
|---|
| 33 | 34 | struct nvkm_memory *core; |
|---|
| 34 | 35 | bool external; |
|---|
| .. | .. |
|---|
| 76 | 77 | } data; |
|---|
| 77 | 78 | void (*init)(struct nvkm_falcon *); |
|---|
| 78 | 79 | void (*intr)(struct nvkm_falcon *, struct nvkm_fifo_chan *); |
|---|
| 80 | + |
|---|
| 81 | + u32 debug; |
|---|
| 82 | + u32 fbif; |
|---|
| 83 | + |
|---|
| 79 | 84 | void (*load_imem)(struct nvkm_falcon *, void *, u32, u32, u16, u8, bool); |
|---|
| 80 | 85 | void (*load_dmem)(struct nvkm_falcon *, void *, u32, u32, u8); |
|---|
| 81 | 86 | void (*read_dmem)(struct nvkm_falcon *, u32, u32, u8, void *); |
|---|
| 87 | + u32 emem_addr; |
|---|
| 82 | 88 | void (*bind_context)(struct nvkm_falcon *, struct nvkm_memory *); |
|---|
| 83 | 89 | int (*wait_for_halt)(struct nvkm_falcon *, u32); |
|---|
| 84 | 90 | int (*clear_interrupt)(struct nvkm_falcon *, u32); |
|---|
| .. | .. |
|---|
| 86 | 92 | void (*start)(struct nvkm_falcon *); |
|---|
| 87 | 93 | int (*enable)(struct nvkm_falcon *falcon); |
|---|
| 88 | 94 | void (*disable)(struct nvkm_falcon *falcon); |
|---|
| 95 | + int (*reset)(struct nvkm_falcon *); |
|---|
| 96 | + |
|---|
| 97 | + struct { |
|---|
| 98 | + u32 head; |
|---|
| 99 | + u32 tail; |
|---|
| 100 | + u32 stride; |
|---|
| 101 | + } cmdq, msgq; |
|---|
| 89 | 102 | |
|---|
| 90 | 103 | struct nvkm_sclass sclass[]; |
|---|
| 91 | 104 | }; |
|---|
| .. | .. |
|---|
| 122 | 135 | int nvkm_falcon_enable(struct nvkm_falcon *); |
|---|
| 123 | 136 | void nvkm_falcon_disable(struct nvkm_falcon *); |
|---|
| 124 | 137 | int nvkm_falcon_reset(struct nvkm_falcon *); |
|---|
| 125 | | - |
|---|
| 126 | 138 | #endif |
|---|