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