Lines Matching refs:chan
41 struct nv50_sw_chan *chan = in nv50_sw_chan_vblsem_release() local
42 container_of(notify, typeof(*chan), vblank.notify[notify->index]); in nv50_sw_chan_vblsem_release()
43 struct nvkm_sw *sw = chan->base.sw; in nv50_sw_chan_vblsem_release()
46 nvkm_wr32(device, 0x001704, chan->base.fifo->inst->addr >> 12); in nv50_sw_chan_vblsem_release()
47 nvkm_wr32(device, 0x001710, 0x80000000 | chan->vblank.ctxdma); in nv50_sw_chan_vblsem_release()
51 nvkm_wr32(device, 0x001570, chan->vblank.offset); in nv50_sw_chan_vblsem_release()
52 nvkm_wr32(device, 0x001574, chan->vblank.value); in nv50_sw_chan_vblsem_release()
54 nvkm_wr32(device, 0x060010, chan->vblank.offset); in nv50_sw_chan_vblsem_release()
55 nvkm_wr32(device, 0x060014, chan->vblank.value); in nv50_sw_chan_vblsem_release()
64 struct nv50_sw_chan *chan = nv50_sw_chan(base); in nv50_sw_chan_mthd() local
65 struct nvkm_engine *engine = chan->base.object.engine; in nv50_sw_chan_mthd()
68 case 0x018c: chan->vblank.ctxdma = data; return true; in nv50_sw_chan_mthd()
69 case 0x0400: chan->vblank.offset = data; return true; in nv50_sw_chan_mthd()
70 case 0x0404: chan->vblank.value = data; return true; in nv50_sw_chan_mthd()
73 nvkm_notify_get(&chan->vblank.notify[data]); in nv50_sw_chan_mthd()
86 struct nv50_sw_chan *chan = nv50_sw_chan(base); in nv50_sw_chan_dtor() local
88 for (i = 0; i < ARRAY_SIZE(chan->vblank.notify); i++) in nv50_sw_chan_dtor()
89 nvkm_notify_fini(&chan->vblank.notify[i]); in nv50_sw_chan_dtor()
90 return chan; in nv50_sw_chan_dtor()
104 struct nv50_sw_chan *chan; in nv50_sw_chan_new() local
107 if (!(chan = kzalloc(sizeof(*chan), GFP_KERNEL))) in nv50_sw_chan_new()
109 *pobject = &chan->base.object; in nv50_sw_chan_new()
111 ret = nvkm_sw_chan_ctor(&nv50_sw_chan, sw, fifoch, oclass, &chan->base); in nv50_sw_chan_new()
123 &chan->vblank.notify[i]); in nv50_sw_chan_new()