Lines Matching refs:fifo

35 nvkm_fifo_pause(struct nvkm_fifo *fifo, unsigned long *flags)  in nvkm_fifo_pause()  argument
37 return fifo->func->pause(fifo, flags); in nvkm_fifo_pause()
41 nvkm_fifo_start(struct nvkm_fifo *fifo, unsigned long *flags) in nvkm_fifo_start() argument
43 return fifo->func->start(fifo, flags); in nvkm_fifo_start()
47 nvkm_fifo_chan_put(struct nvkm_fifo *fifo, unsigned long flags, in nvkm_fifo_chan_put() argument
53 spin_unlock_irqrestore(&fifo->lock, flags); in nvkm_fifo_chan_put()
58 nvkm_fifo_chan_inst(struct nvkm_fifo *fifo, u64 inst, unsigned long *rflags) in nvkm_fifo_chan_inst() argument
62 spin_lock_irqsave(&fifo->lock, flags); in nvkm_fifo_chan_inst()
63 list_for_each_entry(chan, &fifo->chan, head) { in nvkm_fifo_chan_inst()
66 list_add(&chan->head, &fifo->chan); in nvkm_fifo_chan_inst()
71 spin_unlock_irqrestore(&fifo->lock, flags); in nvkm_fifo_chan_inst()
76 nvkm_fifo_chan_chid(struct nvkm_fifo *fifo, int chid, unsigned long *rflags) in nvkm_fifo_chan_chid() argument
80 spin_lock_irqsave(&fifo->lock, flags); in nvkm_fifo_chan_chid()
81 list_for_each_entry(chan, &fifo->chan, head) { in nvkm_fifo_chan_chid()
84 list_add(&chan->head, &fifo->chan); in nvkm_fifo_chan_chid()
89 spin_unlock_irqrestore(&fifo->lock, flags); in nvkm_fifo_chan_chid()
114 struct nvkm_fifo *fifo = container_of(event, typeof(*fifo), uevent); in nvkm_fifo_uevent_fini() local
115 fifo->func->uevent_fini(fifo); in nvkm_fifo_uevent_fini()
121 struct nvkm_fifo *fifo = container_of(event, typeof(*fifo), uevent); in nvkm_fifo_uevent_init() local
122 fifo->func->uevent_init(fifo); in nvkm_fifo_uevent_init()
151 nvkm_fifo_uevent(struct nvkm_fifo *fifo) in nvkm_fifo_uevent() argument
155 nvkm_event_send(&fifo->uevent, 1, 0, &rep, sizeof(rep)); in nvkm_fifo_uevent()
164 struct nvkm_fifo *fifo = nvkm_fifo(oclass->engine); in nvkm_fifo_class_new() local
165 return sclass->ctor(fifo, oclass, data, size, pobject); in nvkm_fifo_class_new()
177 struct nvkm_fifo *fifo = nvkm_fifo(oclass->engine); in nvkm_fifo_class_get() local
181 while ((sclass = fifo->func->chan[c])) { in nvkm_fifo_class_get()
196 struct nvkm_fifo *fifo = nvkm_fifo(engine); in nvkm_fifo_intr() local
197 fifo->func->intr(fifo); in nvkm_fifo_intr()
203 struct nvkm_fifo *fifo = nvkm_fifo(engine); in nvkm_fifo_fini() local
204 if (fifo->func->fini) in nvkm_fifo_fini()
205 fifo->func->fini(fifo); in nvkm_fifo_fini()
212 struct nvkm_fifo *fifo = nvkm_fifo(engine); in nvkm_fifo_oneinit() local
213 if (fifo->func->oneinit) in nvkm_fifo_oneinit()
214 return fifo->func->oneinit(fifo); in nvkm_fifo_oneinit()
221 struct nvkm_fifo *fifo = nvkm_fifo(engine); in nvkm_fifo_init() local
222 fifo->func->init(fifo); in nvkm_fifo_init()
229 struct nvkm_fifo *fifo = nvkm_fifo(engine); in nvkm_fifo_dtor() local
230 void *data = fifo; in nvkm_fifo_dtor()
231 if (fifo->func->dtor) in nvkm_fifo_dtor()
232 data = fifo->func->dtor(fifo); in nvkm_fifo_dtor()
233 nvkm_event_fini(&fifo->cevent); in nvkm_fifo_dtor()
234 nvkm_event_fini(&fifo->uevent); in nvkm_fifo_dtor()
250 int index, int nr, struct nvkm_fifo *fifo) in nvkm_fifo_ctor() argument
254 fifo->func = func; in nvkm_fifo_ctor()
255 INIT_LIST_HEAD(&fifo->chan); in nvkm_fifo_ctor()
256 spin_lock_init(&fifo->lock); in nvkm_fifo_ctor()
258 if (WARN_ON(fifo->nr > NVKM_FIFO_CHID_NR)) in nvkm_fifo_ctor()
259 fifo->nr = NVKM_FIFO_CHID_NR; in nvkm_fifo_ctor()
261 fifo->nr = nr; in nvkm_fifo_ctor()
262 bitmap_clear(fifo->mask, 0, fifo->nr); in nvkm_fifo_ctor()
265 true, &fifo->engine); in nvkm_fifo_ctor()
271 &fifo->uevent); in nvkm_fifo_ctor()
276 return nvkm_event_init(&nvkm_fifo_event_func, 1, 1, &fifo->cevent); in nvkm_fifo_ctor()