Lines Matching refs:vidq
125 struct viu_dmaqueue vidq; member
290 static int restart_video_queue(struct viu_dmaqueue *vidq) in restart_video_queue() argument
294 dprintk(1, "%s vidq=%p\n", __func__, vidq); in restart_video_queue()
295 if (!list_empty(&vidq->active)) { in restart_video_queue()
296 buf = list_entry(vidq->active.next, struct viu_buf, vb.queue); in restart_video_queue()
300 viu_stop_dma(vidq->dev); in restart_video_queue()
303 list_for_each_entry_safe(buf, prev, &vidq->active, vb.queue) { in restart_video_queue()
308 mod_timer(&vidq->timeout, jiffies+BUFFER_TIMEOUT); in restart_video_queue()
314 if (list_empty(&vidq->queued)) in restart_video_queue()
316 buf = list_entry(vidq->queued.next, struct viu_buf, vb.queue); in restart_video_queue()
318 list_move_tail(&buf->vb.queue, &vidq->active); in restart_video_queue()
321 viu_stop_dma(vidq->dev); in restart_video_queue()
322 viu_start_dma(vidq->dev); in restart_video_queue()
325 mod_timer(&vidq->timeout, jiffies+BUFFER_TIMEOUT); in restart_video_queue()
332 list_move_tail(&buf->vb.queue, &vidq->active); in restart_video_queue()
345 struct viu_dev *dev = from_timer(dev, t, vidq.timeout); in viu_vid_timeout()
347 struct viu_dmaqueue *vidq = &dev->vidq; in viu_vid_timeout() local
349 while (!list_empty(&vidq->active)) { in viu_vid_timeout()
350 buf = list_entry(vidq->active.next, struct viu_buf, vb.queue); in viu_vid_timeout()
357 restart_video_queue(vidq); in viu_vid_timeout()
442 mod_timer(&dev->vidq.timeout, jiffies + BUFFER_TIMEOUT); in buffer_activate()
497 struct viu_dmaqueue *vidq = &dev->vidq; in buffer_queue() local
500 if (!list_empty(&vidq->queued)) { in buffer_queue()
503 vidq, &vidq->queued); in buffer_queue()
505 dev, &vidq->queued, vidq->queued.next, in buffer_queue()
506 vidq->queued.prev); in buffer_queue()
507 list_add_tail(&buf->vb.queue, &vidq->queued); in buffer_queue()
511 } else if (list_empty(&vidq->active)) { in buffer_queue()
513 list_add_tail(&buf->vb.queue, &vidq->active); in buffer_queue()
515 mod_timer(&vidq->timeout, jiffies+BUFFER_TIMEOUT); in buffer_queue()
522 prev = list_entry(vidq->active.prev, struct viu_buf, vb.queue); in buffer_queue()
526 list_add_tail(&buf->vb.queue, &vidq->active); in buffer_queue()
531 list_add_tail(&buf->vb.queue, &vidq->queued); in buffer_queue()
958 struct viu_dmaqueue *vidq = viuq; in viu_activate_next_buf() local
962 if (!list_empty(&vidq->active)) { in viu_activate_next_buf()
963 buf = list_entry(vidq->active.next, struct viu_buf, in viu_activate_next_buf()
967 } else if (!list_empty(&vidq->queued)) { in viu_activate_next_buf()
968 buf = list_entry(vidq->queued.next, struct viu_buf, in viu_activate_next_buf()
973 list_add_tail(&buf->vb.queue, &vidq->active); in viu_activate_next_buf()
1023 struct viu_dmaqueue *vidq = &dev->vidq; in viu_capture_intr() local
1047 viu_activate_next_buf(dev, vidq); in viu_capture_intr()
1054 if (!list_empty(&vidq->active)) { in viu_capture_intr()
1074 buf = list_entry(vidq->active.next, in viu_capture_intr()
1089 viu_activate_next_buf(dev, vidq); in viu_capture_intr()
1202 dprintk(1, "Open: fh=%p, dev=%p, dev->vidq=%p\n", fh, dev, &dev->vidq); in viu_open()
1204 list_empty(&dev->vidq.queued)); in viu_open()
1206 list_empty(&dev->vidq.active)); in viu_open()
1433 INIT_LIST_HEAD(&viu_dev->vidq.active); in viu_of_probe()
1434 INIT_LIST_HEAD(&viu_dev->vidq.queued); in viu_of_probe()
1463 timer_setup(&viu_dev->vidq.timeout, viu_vid_timeout, 0); in viu_of_probe()