1 #ifndef __NVKM_XTENSA_H__
2 #define __NVKM_XTENSA_H__
3 #include <core/engine.h>
4 struct nvkm_gpuobj;
5 
6 struct nvkm_xtensa {
7 	struct nvkm_engine engine;
8 
9 	u32 addr;
10 	struct nvkm_gpuobj *gpu_fw;
11 	u32 fifo_val;
12 	u32 unkd28;
13 };
14 
15 #define nvkm_xtensa_create(p,e,c,b,d,i,f,r)				\
16 	nvkm_xtensa_create_((p), (e), (c), (b), (d), (i), (f),	\
17 			       sizeof(**r),(void **)r)
18 
19 int _nvkm_xtensa_engctx_ctor(struct nvkm_object *,
20 				struct nvkm_object *,
21 				struct nvkm_oclass *, void *, u32,
22 				struct nvkm_object **);
23 
24 void _nvkm_xtensa_intr(struct nvkm_subdev *);
25 int nvkm_xtensa_create_(struct nvkm_object *,
26 			   struct nvkm_object *,
27 			   struct nvkm_oclass *, u32, bool,
28 			   const char *, const char *,
29 			   int, void **);
30 #define _nvkm_xtensa_dtor _nvkm_engine_dtor
31 int _nvkm_xtensa_init(struct nvkm_object *);
32 int _nvkm_xtensa_fini(struct nvkm_object *, bool);
33 u32  _nvkm_xtensa_rd32(struct nvkm_object *, u64);
34 void _nvkm_xtensa_wr32(struct nvkm_object *, u64, u32);
35 #endif
36