Lines Matching refs:fifo

43 	nvkm_wr32(chan->cgrp->runl->fifo->engine.subdev.device, 0x002634, chan->id);  in gf100_chan_preempt()
49 struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device; in gf100_chan_stop()
57 struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device; in gf100_chan_start()
67 struct nvkm_fifo *fifo = chan->cgrp->runl->fifo; in gf100_chan_unbind() local
68 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_chan_unbind()
71 gf100_fifo_intr_engine(fifo); in gf100_chan_unbind()
79 struct nvkm_device *device = chan->cgrp->runl->fifo->engine.subdev.device; in gf100_chan_bind()
205 struct nvkm_fifo *fifo = runl->fifo; in gf100_engn_mmu_fault_triggered() local
206 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_engn_mmu_fault_triggered()
213 spin_lock(&fifo->lock); in gf100_engn_mmu_fault_triggered()
217 spin_unlock(&fifo->lock); in gf100_engn_mmu_fault_triggered()
225 struct nvkm_fifo *fifo = runl->fifo; in gf100_engn_mmu_fault_trigger() local
226 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_engn_mmu_fault_trigger()
229 spin_lock(&fifo->lock); in gf100_engn_mmu_fault_trigger()
234 spin_unlock(&fifo->lock); in gf100_engn_mmu_fault_trigger()
312 struct nvkm_subdev *subdev = &runq->fifo->engine.subdev; in gf100_runq_intr()
318 u32 chid = nvkm_rd32(device, 0x040120 + (runq->id * 0x2000)) & runq->fifo->chid->mask; in gf100_runq_intr()
335 chan = nvkm_chan_get_chid(&runq->fifo->engine, chid, &flags); in gf100_runq_intr()
355 struct nvkm_device *device = runq->fifo->engine.subdev.device; in gf100_runq_init()
372 return nvkm_rd32(runl->fifo->engine.subdev.device, 0x002634) & 0x00100000; in gf100_runl_preempt_pending()
378 nvkm_mask(runl->fifo->engine.subdev.device, 0x00262c, 0x00000000, 0x00000000); in gf100_runl_fault_clear()
384 nvkm_mask(runl->fifo->engine.subdev.device, 0x002630, engm, 0x00000000); in gf100_runl_allow()
390 nvkm_mask(runl->fifo->engine.subdev.device, 0x002630, engm, engm); in gf100_runl_block()
396 return nvkm_rd32(runl->fifo->engine.subdev.device, 0x00227c) & 0x00100000; in gf100_runl_pending()
402 struct nvkm_device *device = runl->fifo->engine.subdev.device; in gf100_runl_commit()
442 struct nvkm_fifo *fifo = container_of(event, typeof(*fifo), nonstall.event); in gf100_fifo_nonstall_allow() local
445 spin_lock_irqsave(&fifo->lock, flags); in gf100_fifo_nonstall_allow()
446 nvkm_mask(fifo->engine.subdev.device, 0x002140, 0x80000000, 0x80000000); in gf100_fifo_nonstall_allow()
447 spin_unlock_irqrestore(&fifo->lock, flags); in gf100_fifo_nonstall_allow()
453 struct nvkm_fifo *fifo = container_of(event, typeof(*fifo), nonstall.event); in gf100_fifo_nonstall_block() local
456 spin_lock_irqsave(&fifo->lock, flags); in gf100_fifo_nonstall_block()
457 nvkm_mask(fifo->engine.subdev.device, 0x002140, 0x80000000, 0x00000000); in gf100_fifo_nonstall_block()
458 spin_unlock_irqrestore(&fifo->lock, flags); in gf100_fifo_nonstall_block()
534 gf100_fifo_mmu_fault_recover(struct nvkm_fifo *fifo, struct nvkm_fault_data *info) in gf100_fifo_mmu_fault_recover() argument
536 struct nvkm_subdev *subdev = &fifo->engine.subdev; in gf100_fifo_mmu_fault_recover()
547 nvkm_runl_foreach(runl, fifo) { in gf100_fifo_mmu_fault_recover()
562 er = nvkm_enum_find(fifo->func->mmu_fault->reason, info->reason); in gf100_fifo_mmu_fault_recover()
563 ee = nvkm_enum_find(fifo->func->mmu_fault->engine, info->engine); in gf100_fifo_mmu_fault_recover()
565 ec = nvkm_enum_find(fifo->func->mmu_fault->hubclient, info->client); in gf100_fifo_mmu_fault_recover()
567 ec = nvkm_enum_find(fifo->func->mmu_fault->gpcclient, info->client); in gf100_fifo_mmu_fault_recover()
570 ea = nvkm_enum_find(fifo->func->mmu_fault->access, info->access); in gf100_fifo_mmu_fault_recover()
589 chan = nvkm_chan_get_inst(&fifo->engine, info->inst, &flags); in gf100_fifo_mmu_fault_recover()
618 gf100_fifo_intr_ctxsw_timeout(struct nvkm_fifo *fifo, u32 engm) in gf100_fifo_intr_ctxsw_timeout() argument
625 nvkm_runl_foreach(runl, fifo) { in gf100_fifo_intr_ctxsw_timeout()
645 gf100_fifo_intr_sched_ctxsw(struct nvkm_fifo *fifo) in gf100_fifo_intr_sched_ctxsw() argument
652 nvkm_runl_foreach(runl, fifo) { in gf100_fifo_intr_sched_ctxsw()
664 fifo->func->intr_ctxsw_timeout(fifo, engm); in gf100_fifo_intr_sched_ctxsw()
674 gf100_fifo_intr_sched(struct nvkm_fifo *fifo) in gf100_fifo_intr_sched() argument
676 struct nvkm_subdev *subdev = &fifo->engine.subdev; in gf100_fifo_intr_sched()
688 gf100_fifo_intr_sched_ctxsw(fifo); in gf100_fifo_intr_sched()
696 gf100_fifo_intr_mmu_fault_unit(struct nvkm_fifo *fifo, int unit) in gf100_fifo_intr_mmu_fault_unit() argument
698 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_intr_mmu_fault_unit()
716 nvkm_fifo_fault(fifo, &info); in gf100_fifo_intr_mmu_fault_unit()
720 gf100_fifo_intr_mmu_fault(struct nvkm_fifo *fifo) in gf100_fifo_intr_mmu_fault() argument
722 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_intr_mmu_fault()
727 fifo->func->intr_mmu_fault_unit(fifo, unit); in gf100_fifo_intr_mmu_fault()
733 gf100_fifo_intr_pbdma(struct nvkm_fifo *fifo) in gf100_fifo_intr_pbdma() argument
735 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_intr_pbdma()
740 nvkm_runq_foreach_cond(runq, fifo, mask & BIT(runq->id)) { in gf100_fifo_intr_pbdma()
751 gf100_fifo_intr_runlist(struct nvkm_fifo *fifo) in gf100_fifo_intr_runlist() argument
753 struct nvkm_subdev *subdev = &fifo->engine.subdev; in gf100_fifo_intr_runlist()
769 gf100_fifo_intr_engine_unit(struct nvkm_fifo *fifo, int engn) in gf100_fifo_intr_engine_unit() argument
771 struct nvkm_subdev *subdev = &fifo->engine.subdev; in gf100_fifo_intr_engine_unit()
782 nvkm_event_ntfy(&fifo->nonstall.event, 0, NVKM_FIFO_NONSTALL_EVENT); in gf100_fifo_intr_engine_unit()
793 gf100_fifo_intr_engine(struct nvkm_fifo *fifo) in gf100_fifo_intr_engine() argument
795 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_intr_engine()
800 gf100_fifo_intr_engine_unit(fifo, unit); in gf100_fifo_intr_engine()
808 struct nvkm_fifo *fifo = container_of(inth, typeof(*fifo), engine.subdev.inth); in gf100_fifo_intr() local
809 struct nvkm_subdev *subdev = &fifo->engine.subdev; in gf100_fifo_intr()
822 gf100_fifo_intr_sched(fifo); in gf100_fifo_intr()
842 gf100_fifo_intr_mmu_fault(fifo); in gf100_fifo_intr()
847 if (gf100_fifo_intr_pbdma(fifo)) in gf100_fifo_intr()
852 gf100_fifo_intr_runlist(fifo); in gf100_fifo_intr()
857 gf100_fifo_intr_engine(fifo); in gf100_fifo_intr()
863 spin_lock(&fifo->lock); in gf100_fifo_intr()
865 spin_unlock(&fifo->lock); in gf100_fifo_intr()
873 gf100_fifo_init_pbdmas(struct nvkm_fifo *fifo, u32 mask) in gf100_fifo_init_pbdmas() argument
875 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_init_pbdmas()
895 gf100_fifo_init(struct nvkm_fifo *fifo) in gf100_fifo_init() argument
897 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_init()
900 nvkm_wr32(device, 0x002254, 0x10000000 | fifo->userd.bar1->addr >> 12); in gf100_fifo_init()
908 gf100_fifo_runl_ctor(struct nvkm_fifo *fifo) in gf100_fifo_runl_ctor() argument
912 runl = nvkm_runl_new(fifo, 0, 0, 0); in gf100_fifo_runl_ctor()
916 nvkm_runl_add(runl, 0, fifo->func->engn, NVKM_ENGINE_GR, 0); in gf100_fifo_runl_ctor()
917 nvkm_runl_add(runl, 1, fifo->func->engn, NVKM_ENGINE_MSPDEC, 0); in gf100_fifo_runl_ctor()
918 nvkm_runl_add(runl, 2, fifo->func->engn, NVKM_ENGINE_MSPPP, 0); in gf100_fifo_runl_ctor()
919 nvkm_runl_add(runl, 3, fifo->func->engn, NVKM_ENGINE_MSVLD, 0); in gf100_fifo_runl_ctor()
920 nvkm_runl_add(runl, 4, fifo->func->engn, NVKM_ENGINE_CE, 0); in gf100_fifo_runl_ctor()
921 nvkm_runl_add(runl, 5, fifo->func->engn, NVKM_ENGINE_CE, 1); in gf100_fifo_runl_ctor()
927 gf100_fifo_runq_nr(struct nvkm_fifo *fifo) in gf100_fifo_runq_nr() argument
929 struct nvkm_device *device = fifo->engine.subdev.device; in gf100_fifo_runq_nr()
939 gf100_fifo_chid_ctor(struct nvkm_fifo *fifo, int nr) in gf100_fifo_chid_ctor() argument
941 return nvkm_chid_new(&nvkm_chan_event, &fifo->engine.subdev, nr, 0, nr, &fifo->chid); in gf100_fifo_chid_ctor()