Lines Matching defs:dma_q
73 struct cx231xx_dmaqueue *dma_q = urb->context;
98 if (dma_q->is_partial_line) {
101 sav_eav = dma_q->last_sav;
107 dma_q->partial_buf,
115 bytes_parsed += cx231xx_get_vbi_line(dev, dma_q,
122 dma_q->is_partial_line = 0;
137 dma_q, sav_eav, /* SAV/EAV */
145 memcpy(dma_q->partial_buf, p_buffer + buffer_size - 4, 4);
259 struct cx231xx_dmaqueue *dma_q = urb->context;
261 container_of(dma_q, struct cx231xx_video_mode, vidq);
345 struct cx231xx_dmaqueue *dma_q = &dev->vbi_mode.vidq;
363 dma_q->pos = 0;
364 dma_q->is_partial_line = 0;
365 dma_q->last_sav = 0;
366 dma_q->current_field = -1;
367 dma_q->bytes_left_in_line = dev->width << 1;
368 dma_q->lines_per_field = ((dev->norm & V4L2_STD_625_50) ?
370 dma_q->lines_completed = 0;
372 dma_q->partial_buf[i] = 0;
421 sb_size, cx231xx_irq_vbi_callback, dma_q);
424 init_waitqueue_head(&dma_q->wq);
443 u32 cx231xx_get_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
465 dma_q->last_sav = sav_eav;
468 cx231xx_copy_vbi_line(dev, dma_q, p_buffer, buffer_size,
478 struct cx231xx_dmaqueue *dma_q,
484 buf->vb.sequence = dma_q->sequence++;
493 u32 cx231xx_copy_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
500 if (dma_q->current_field == -1) {
502 cx231xx_reset_vbi_buffer(dev, dma_q);
505 if (dma_q->current_field != field_number)
506 dma_q->lines_completed = 0;
512 dma_q->current_field = field_number;
514 bytes_to_copy = dma_q->bytes_left_in_line;
518 if (dma_q->lines_completed >= dma_q->lines_per_field) {
519 dma_q->bytes_left_in_line -= bytes_to_copy;
520 dma_q->is_partial_line =
521 (dma_q->bytes_left_in_line == 0) ? 0 : 1;
525 dma_q->is_partial_line = 1;
530 dma_q->bytes_left_in_line -= bytes_to_copy;
531 dma_q->is_partial_line =
532 (dma_q->bytes_left_in_line == 0) ? 0 : 1;
537 cx231xx_do_vbi_copy(dev, dma_q, p_line, bytes_to_copy);
539 dma_q->pos += bytes_to_copy;
540 dma_q->bytes_left_in_line -= bytes_to_copy;
542 if (dma_q->bytes_left_in_line == 0) {
544 dma_q->bytes_left_in_line = _line_size;
545 dma_q->lines_completed++;
546 dma_q->is_partial_line = 0;
548 if (cx231xx_is_vbi_buffer_done(dev, dma_q) && buf) {
550 vbi_buffer_filled(dev, dma_q, buf);
552 dma_q->pos = 0;
553 dma_q->lines_completed = 0;
554 cx231xx_reset_vbi_buffer(dev, dma_q);
564 static inline void get_next_vbi_buf(struct cx231xx_dmaqueue *dma_q,
568 container_of(dma_q, struct cx231xx_video_mode, vidq);
572 if (list_empty(&dma_q->active)) {
580 *buf = list_entry(dma_q->active.next, struct cx231xx_buffer, list);
592 struct cx231xx_dmaqueue *dma_q)
600 get_next_vbi_buf(dma_q, &buf);
602 dma_q->pos = 0;
603 dma_q->current_field = -1;
606 dma_q->bytes_left_in_line = dev->width << 1;
607 dma_q->lines_completed = 0;
610 int cx231xx_do_vbi_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q,
627 if (dma_q->bytes_left_in_line != _line_size) {
629 _line_size - dma_q->bytes_left_in_line;
632 offset = (dma_q->lines_completed * _line_size) +
635 if (dma_q->current_field == 2) {
637 offset += (dev->width * 2 * dma_q->lines_per_field);
643 lencopy = dma_q->bytes_left_in_line > bytes_to_copy ?
644 bytes_to_copy : dma_q->bytes_left_in_line;
652 struct cx231xx_dmaqueue *dma_q)
658 if (dma_q->lines_completed == height && dma_q->current_field == 2)