1 #ifndef __NVKM_SW_NV50_H__ 2 #define __NVKM_SW_NV50_H__ 3 #define nv50_sw_chan(p) container_of((p), struct nv50_sw_chan, base) 4 #include "priv.h" 5 #include "chan.h" 6 #include "nvsw.h" 7 #include <core/notify.h> 8 9 struct nv50_sw_oclass { 10 struct nvkm_oclass base; 11 const struct nvkm_sw_func *func; 12 }; 13 14 int nv50_sw_ctor(struct nvkm_object *, struct nvkm_object *, 15 struct nvkm_oclass *, void *, u32, 16 struct nvkm_object **); 17 18 struct nv50_sw_cclass { 19 struct nvkm_oclass base; 20 int (*vblank)(struct nvkm_notify *); 21 const struct nvkm_sw_chan_func *chan; 22 }; 23 24 struct nv50_sw_chan { 25 struct nvkm_sw_chan base; 26 struct { 27 struct nvkm_notify notify[4]; 28 u32 ctxdma; 29 u64 offset; 30 u32 value; 31 } vblank; 32 }; 33 34 void *nv50_sw_chan_dtor(struct nvkm_sw_chan *); 35 #endif 36