blob: 2c0b1b42b861d67d86d3b9b208f5729602616635 [file] [log] [blame]
Ben Skeggs3bfcec32013-10-03 07:17:02 +10001#ifndef __NVKM_SW_NV50_H__
2#define __NVKM_SW_NV50_H__
3
4#include <engine/software.h>
5
Ben Skeggsc46c3dd2013-10-03 07:30:11 +10006struct nv50_software_oclass {
7 struct nouveau_oclass base;
Ben Skeggs75895632013-10-03 07:42:41 +10008 struct nouveau_oclass *cclass;
9 struct nouveau_oclass *sclass;
Ben Skeggsc46c3dd2013-10-03 07:30:11 +100010};
11
Ben Skeggs3bfcec32013-10-03 07:17:02 +100012struct nv50_software_priv {
13 struct nouveau_software base;
14};
15
Ben Skeggs75895632013-10-03 07:42:41 +100016int nv50_software_ctor(struct nouveau_object *, struct nouveau_object *,
17 struct nouveau_oclass *, void *, u32,
18 struct nouveau_object **);
19
20struct nv50_software_cclass {
21 struct nouveau_oclass base;
22 int (*vblank)(struct nouveau_eventh *, int);
23};
24
Ben Skeggs3bfcec32013-10-03 07:17:02 +100025struct nv50_software_chan {
26 struct nouveau_software_chan base;
Ben Skeggsef8d4782013-10-03 07:21:34 +100027 struct {
28 struct nouveau_eventh event;
29 u32 channel;
30 u32 ctxdma;
31 u64 offset;
32 u32 value;
33 } vblank;
Ben Skeggs3bfcec32013-10-03 07:17:02 +100034};
35
Ben Skeggs75895632013-10-03 07:42:41 +100036int nv50_software_context_ctor(struct nouveau_object *,
37 struct nouveau_object *,
38 struct nouveau_oclass *, void *, u32,
39 struct nouveau_object **);
40
Ben Skeggs3bfcec32013-10-03 07:17:02 +100041#endif