Lines Matching refs:dma_q

73 	struct cx231xx_dmaqueue *dma_q = urb->context;  in cx231xx_isoc_vbi_copy()  local
98 if (dma_q->is_partial_line) { in cx231xx_isoc_vbi_copy()
101 sav_eav = dma_q->last_sav; in cx231xx_isoc_vbi_copy()
107 dma_q->partial_buf, in cx231xx_isoc_vbi_copy()
115 bytes_parsed += cx231xx_get_vbi_line(dev, dma_q, in cx231xx_isoc_vbi_copy()
122 dma_q->is_partial_line = 0; in cx231xx_isoc_vbi_copy()
137 dma_q, sav_eav, /* SAV/EAV */ in cx231xx_isoc_vbi_copy()
145 memcpy(dma_q->partial_buf, p_buffer + buffer_size - 4, 4); in cx231xx_isoc_vbi_copy()
259 struct cx231xx_dmaqueue *dma_q = urb->context; in cx231xx_irq_vbi_callback() local
261 container_of(dma_q, struct cx231xx_video_mode, vidq); in cx231xx_irq_vbi_callback()
345 struct cx231xx_dmaqueue *dma_q = &dev->vbi_mode.vidq; in cx231xx_init_vbi_isoc() local
363 dma_q->pos = 0; in cx231xx_init_vbi_isoc()
364 dma_q->is_partial_line = 0; in cx231xx_init_vbi_isoc()
365 dma_q->last_sav = 0; in cx231xx_init_vbi_isoc()
366 dma_q->current_field = -1; in cx231xx_init_vbi_isoc()
367 dma_q->bytes_left_in_line = dev->width << 1; in cx231xx_init_vbi_isoc()
368 dma_q->lines_per_field = ((dev->norm & V4L2_STD_625_50) ? in cx231xx_init_vbi_isoc()
370 dma_q->lines_completed = 0; in cx231xx_init_vbi_isoc()
372 dma_q->partial_buf[i] = 0; in cx231xx_init_vbi_isoc()
420 sb_size, cx231xx_irq_vbi_callback, dma_q); in cx231xx_init_vbi_isoc()
423 init_waitqueue_head(&dma_q->wq); in cx231xx_init_vbi_isoc()
442 u32 cx231xx_get_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q, in cx231xx_get_vbi_line() argument
464 dma_q->last_sav = sav_eav; in cx231xx_get_vbi_line()
467 cx231xx_copy_vbi_line(dev, dma_q, p_buffer, buffer_size, in cx231xx_get_vbi_line()
477 struct cx231xx_dmaqueue *dma_q, in vbi_buffer_filled() argument
483 buf->vb.sequence = dma_q->sequence++; in vbi_buffer_filled()
492 u32 cx231xx_copy_vbi_line(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q, in cx231xx_copy_vbi_line() argument
499 if (dma_q->current_field == -1) { in cx231xx_copy_vbi_line()
501 cx231xx_reset_vbi_buffer(dev, dma_q); in cx231xx_copy_vbi_line()
504 if (dma_q->current_field != field_number) in cx231xx_copy_vbi_line()
505 dma_q->lines_completed = 0; in cx231xx_copy_vbi_line()
511 dma_q->current_field = field_number; in cx231xx_copy_vbi_line()
513 bytes_to_copy = dma_q->bytes_left_in_line; in cx231xx_copy_vbi_line()
517 if (dma_q->lines_completed >= dma_q->lines_per_field) { in cx231xx_copy_vbi_line()
518 dma_q->bytes_left_in_line -= bytes_to_copy; in cx231xx_copy_vbi_line()
519 dma_q->is_partial_line = in cx231xx_copy_vbi_line()
520 (dma_q->bytes_left_in_line == 0) ? 0 : 1; in cx231xx_copy_vbi_line()
524 dma_q->is_partial_line = 1; in cx231xx_copy_vbi_line()
529 dma_q->bytes_left_in_line -= bytes_to_copy; in cx231xx_copy_vbi_line()
530 dma_q->is_partial_line = in cx231xx_copy_vbi_line()
531 (dma_q->bytes_left_in_line == 0) ? 0 : 1; in cx231xx_copy_vbi_line()
536 cx231xx_do_vbi_copy(dev, dma_q, p_line, bytes_to_copy); in cx231xx_copy_vbi_line()
538 dma_q->pos += bytes_to_copy; in cx231xx_copy_vbi_line()
539 dma_q->bytes_left_in_line -= bytes_to_copy; in cx231xx_copy_vbi_line()
541 if (dma_q->bytes_left_in_line == 0) { in cx231xx_copy_vbi_line()
543 dma_q->bytes_left_in_line = _line_size; in cx231xx_copy_vbi_line()
544 dma_q->lines_completed++; in cx231xx_copy_vbi_line()
545 dma_q->is_partial_line = 0; in cx231xx_copy_vbi_line()
547 if (cx231xx_is_vbi_buffer_done(dev, dma_q) && buf) { in cx231xx_copy_vbi_line()
549 vbi_buffer_filled(dev, dma_q, buf); in cx231xx_copy_vbi_line()
551 dma_q->pos = 0; in cx231xx_copy_vbi_line()
552 dma_q->lines_completed = 0; in cx231xx_copy_vbi_line()
553 cx231xx_reset_vbi_buffer(dev, dma_q); in cx231xx_copy_vbi_line()
563 static inline void get_next_vbi_buf(struct cx231xx_dmaqueue *dma_q, in get_next_vbi_buf() argument
567 container_of(dma_q, struct cx231xx_video_mode, vidq); in get_next_vbi_buf()
571 if (list_empty(&dma_q->active)) { in get_next_vbi_buf()
579 *buf = list_entry(dma_q->active.next, struct cx231xx_buffer, list); in get_next_vbi_buf()
591 struct cx231xx_dmaqueue *dma_q) in cx231xx_reset_vbi_buffer() argument
599 get_next_vbi_buf(dma_q, &buf); in cx231xx_reset_vbi_buffer()
601 dma_q->pos = 0; in cx231xx_reset_vbi_buffer()
602 dma_q->current_field = -1; in cx231xx_reset_vbi_buffer()
605 dma_q->bytes_left_in_line = dev->width << 1; in cx231xx_reset_vbi_buffer()
606 dma_q->lines_completed = 0; in cx231xx_reset_vbi_buffer()
609 int cx231xx_do_vbi_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q, in cx231xx_do_vbi_copy() argument
626 if (dma_q->bytes_left_in_line != _line_size) { in cx231xx_do_vbi_copy()
628 _line_size - dma_q->bytes_left_in_line; in cx231xx_do_vbi_copy()
631 offset = (dma_q->lines_completed * _line_size) + in cx231xx_do_vbi_copy()
634 if (dma_q->current_field == 2) { in cx231xx_do_vbi_copy()
636 offset += (dev->width * 2 * dma_q->lines_per_field); in cx231xx_do_vbi_copy()
642 lencopy = dma_q->bytes_left_in_line > bytes_to_copy ? in cx231xx_do_vbi_copy()
643 bytes_to_copy : dma_q->bytes_left_in_line; in cx231xx_do_vbi_copy()
651 struct cx231xx_dmaqueue *dma_q) in cx231xx_is_vbi_buffer_done() argument
657 if (dma_q->lines_completed == height && dma_q->current_field == 2) in cx231xx_is_vbi_buffer_done()