summaryrefslogtreecommitdiff
path: root/drm/nouveau/include/nvkm/engine/mpeg.h
blob: 029fd0c28d22f0eaf0aa69ce9126d28f6f33d8b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef __NVKM_MPEG_H__
#define __NVKM_MPEG_H__
#include <core/engine.h>

struct nvkm_mpeg {
	struct nvkm_engine engine;
};

#define nvkm_mpeg_create(p,e,c,d)                                           \
	nvkm_engine_create((p), (e), (c), true, "PMPEG", "mpeg", (d))
#define nvkm_mpeg_destroy(d)                                                \
	nvkm_engine_destroy(&(d)->engine)
#define nvkm_mpeg_init(d)                                                   \
	nvkm_engine_init_old(&(d)->engine)
#define nvkm_mpeg_fini(d,s)                                                 \
	nvkm_engine_fini_old(&(d)->engine, (s))

#define _nvkm_mpeg_dtor _nvkm_engine_dtor
#define _nvkm_mpeg_init _nvkm_engine_init
#define _nvkm_mpeg_fini _nvkm_engine_fini

extern struct nvkm_oclass nv31_mpeg_oclass;
extern struct nvkm_oclass nv40_mpeg_oclass;
extern struct nvkm_oclass nv44_mpeg_oclass;
extern struct nvkm_oclass nv50_mpeg_oclass;
extern struct nvkm_oclass g84_mpeg_oclass;
extern struct nvkm_oclass nv40_mpeg_sclass[];
void nv31_mpeg_intr(struct nvkm_subdev *);
void nv31_mpeg_tile_prog(struct nvkm_engine *, int);
int  nv31_mpeg_init(struct nvkm_object *);

extern struct nvkm_ofuncs nv50_mpeg_ofuncs;
int  nv50_mpeg_context_ctor(struct nvkm_object *, struct nvkm_object *,
			    struct nvkm_oclass *, void *, u32,
			    struct nvkm_object **);
void nv50_mpeg_intr(struct nvkm_subdev *);
int  nv50_mpeg_init(struct nvkm_object *);
#endif