Merge branch 'xfs-fixes-for-3.14-rc4' of git://oss.sgi.com/xfs/xfs
[cascardo/linux.git] / drivers / gpu / drm / nouveau / core / engine / software / nv50.h
1 #ifndef __NVKM_SW_NV50_H__
2 #define __NVKM_SW_NV50_H__
3
4 #include <engine/software.h>
5
6 struct nv50_software_oclass {
7         struct nouveau_oclass base;
8         struct nouveau_oclass *cclass;
9         struct nouveau_oclass *sclass;
10 };
11
12 struct nv50_software_priv {
13         struct nouveau_software base;
14 };
15
16 int  nv50_software_ctor(struct nouveau_object *, struct nouveau_object *,
17                         struct nouveau_oclass *, void *, u32,
18                         struct nouveau_object **);
19
20 struct nv50_software_cclass {
21         struct nouveau_oclass base;
22         int (*vblank)(void *, int);
23 };
24
25 struct nv50_software_chan {
26         struct nouveau_software_chan base;
27         struct {
28                 struct nouveau_eventh **event;
29                 int nr_event;
30                 u32 channel;
31                 u32 ctxdma;
32                 u64 offset;
33                 u32 value;
34         } vblank;
35 };
36
37 int  nv50_software_context_ctor(struct nouveau_object *,
38                                 struct nouveau_object *,
39                                 struct nouveau_oclass *, void *, u32,
40                                 struct nouveau_object **);
41 void nv50_software_context_dtor(struct nouveau_object *);
42
43 int nv50_software_mthd_vblsem_value(struct nouveau_object *, u32, void *, u32);
44 int nv50_software_mthd_vblsem_release(struct nouveau_object *, u32, void *, u32);
45 int nv50_software_mthd_flip(struct nouveau_object *, u32, void *, u32);
46
47 #endif