1#ifndef __NOUVEAU_XTENSA_H__
2#define __NOUVEAU_XTENSA_H__
3
4#include <core/engine.h>
5#include <core/engctx.h>
6#include <core/gpuobj.h>
7
8struct nouveau_xtensa {
9 struct nouveau_engine base;
10
11 u32 addr;
12 struct nouveau_gpuobj *gpu_fw;
13 u32 fifo_val;
14 u32 unkd28;
15};
16
17#define nouveau_xtensa_create(p,e,c,b,d,i,f,r) \
18 nouveau_xtensa_create_((p), (e), (c), (b), (d), (i), (f), \
19 sizeof(**r),(void **)r)
20
21int _nouveau_xtensa_engctx_ctor(struct nouveau_object *,
22 struct nouveau_object *,
23 struct nouveau_oclass *, void *, u32,
24 struct nouveau_object **);
25
26void _nouveau_xtensa_intr(struct nouveau_subdev *);
27int nouveau_xtensa_create_(struct nouveau_object *,
28 struct nouveau_object *,
29 struct nouveau_oclass *, u32, bool,
30 const char *, const char *,
31 int, void **);
32#define _nouveau_xtensa_dtor _nouveau_engine_dtor
33int _nouveau_xtensa_init(struct nouveau_object *);
34int _nouveau_xtensa_fini(struct nouveau_object *, bool);
35u32 _nouveau_xtensa_rd32(struct nouveau_object *, u64);
36void _nouveau_xtensa_wr32(struct nouveau_object *, u64, u32);
37
38#endif
39