1 #ifndef __NVKM_SW_NV50_H__ 2 #define __NVKM_SW_NV50_H__ 3 #include <engine/sw.h> 4 #include <core/notify.h> 5 6 struct nv50_sw_oclass { 7 struct nvkm_oclass base; 8 struct nvkm_oclass *cclass; 9 struct nvkm_oclass *sclass; 10 }; 11 12 int nv50_sw_ctor(struct nvkm_object *, struct nvkm_object *, 13 struct nvkm_oclass *, void *, u32, 14 struct nvkm_object **); 15 16 struct nv50_sw_cclass { 17 struct nvkm_oclass base; 18 int (*vblank)(struct nvkm_notify *); 19 }; 20 21 struct nv50_sw_chan { 22 struct nvkm_sw_chan base; 23 struct { 24 struct nvkm_notify notify[4]; 25 u32 channel; 26 u32 ctxdma; 27 u64 offset; 28 u32 value; 29 } vblank; 30 }; 31 32 int nv50_sw_context_ctor(struct nvkm_object *, 33 struct nvkm_object *, 34 struct nvkm_oclass *, void *, u32, 35 struct nvkm_object **); 36 void nv50_sw_context_dtor(struct nvkm_object *); 37 38 int nv50_sw_mthd_vblsem_value(struct nvkm_object *, u32, void *, u32); 39 int nv50_sw_mthd_vblsem_release(struct nvkm_object *, u32, void *, u32); 40 int nv50_sw_mthd_flip(struct nvkm_object *, u32, void *, u32); 41 #endif 42