Lines Matching refs:dma_q

165 				 struct cx231xx_dmaqueue *dma_q,  in buffer_filled()  argument
224 static inline void get_next_buf(struct cx231xx_dmaqueue *dma_q, in get_next_buf() argument
228 container_of(dma_q, struct cx231xx_video_mode, vidq); in get_next_buf()
233 if (list_empty(&dma_q->active)) { in get_next_buf()
244 *buf = list_entry(dma_q->active.next, struct cx231xx_buffer, vb.queue); in get_next_buf()
263 struct cx231xx_dmaqueue *dma_q = urb->context; in cx231xx_isoc_copy() local
305 if (dma_q->is_partial_line) { in cx231xx_isoc_copy()
307 sav_eav = dma_q->last_sav; in cx231xx_isoc_copy()
313 dma_q->partial_buf, in cx231xx_isoc_copy()
321 bytes_parsed += cx231xx_get_video_line(dev, dma_q, in cx231xx_isoc_copy()
343 dma_q, sav_eav, /* SAV/EAV */ in cx231xx_isoc_copy()
351 memcpy(dma_q->partial_buf, p_buffer + buffer_size - 4, 4); in cx231xx_isoc_copy()
360 struct cx231xx_dmaqueue *dma_q = urb->context; in cx231xx_bulk_copy() local
384 if (dma_q->is_partial_line) { in cx231xx_bulk_copy()
386 sav_eav = dma_q->last_sav; in cx231xx_bulk_copy()
392 dma_q->partial_buf, in cx231xx_bulk_copy()
400 bytes_parsed += cx231xx_get_video_line(dev, dma_q, in cx231xx_bulk_copy()
422 dma_q, sav_eav, /* SAV/EAV */ in cx231xx_bulk_copy()
430 memcpy(dma_q->partial_buf, p_buffer + buffer_size - 4, 4); in cx231xx_bulk_copy()
497 struct cx231xx_dmaqueue *dma_q, u8 sav_eav, in cx231xx_get_video_line() argument
533 dma_q->last_sav = sav_eav; in cx231xx_get_video_line()
535 bytes_copied = cx231xx_copy_video_line(dev, dma_q, p_buffer, in cx231xx_get_video_line()
542 struct cx231xx_dmaqueue *dma_q, u8 *p_line, in cx231xx_copy_video_line() argument
549 if (dma_q->current_field != field_number) in cx231xx_copy_video_line()
550 cx231xx_reset_video_buffer(dev, dma_q); in cx231xx_copy_video_line()
559 dma_q->current_field = field_number; in cx231xx_copy_video_line()
561 bytes_to_copy = dma_q->bytes_left_in_line; in cx231xx_copy_video_line()
565 if (dma_q->lines_completed >= dma_q->lines_per_field) { in cx231xx_copy_video_line()
566 dma_q->bytes_left_in_line -= bytes_to_copy; in cx231xx_copy_video_line()
567 dma_q->is_partial_line = (dma_q->bytes_left_in_line == 0) ? in cx231xx_copy_video_line()
572 dma_q->is_partial_line = 1; in cx231xx_copy_video_line()
577 dma_q->bytes_left_in_line -= bytes_to_copy; in cx231xx_copy_video_line()
578 dma_q->is_partial_line = (dma_q->bytes_left_in_line == 0) in cx231xx_copy_video_line()
584 cx231xx_do_copy(dev, dma_q, p_line, bytes_to_copy); in cx231xx_copy_video_line()
586 dma_q->pos += bytes_to_copy; in cx231xx_copy_video_line()
587 dma_q->bytes_left_in_line -= bytes_to_copy; in cx231xx_copy_video_line()
589 if (dma_q->bytes_left_in_line == 0) { in cx231xx_copy_video_line()
590 dma_q->bytes_left_in_line = _line_size; in cx231xx_copy_video_line()
591 dma_q->lines_completed++; in cx231xx_copy_video_line()
592 dma_q->is_partial_line = 0; in cx231xx_copy_video_line()
594 if (cx231xx_is_buffer_done(dev, dma_q) && buf) { in cx231xx_copy_video_line()
595 buffer_filled(dev, dma_q, buf); in cx231xx_copy_video_line()
597 dma_q->pos = 0; in cx231xx_copy_video_line()
599 dma_q->lines_completed = 0; in cx231xx_copy_video_line()
607 struct cx231xx_dmaqueue *dma_q) in cx231xx_reset_video_buffer() argument
612 if (dma_q->current_field == 1) { in cx231xx_reset_video_buffer()
613 if (dma_q->lines_completed >= dma_q->lines_per_field) in cx231xx_reset_video_buffer()
614 dma_q->field1_done = 1; in cx231xx_reset_video_buffer()
616 dma_q->field1_done = 0; in cx231xx_reset_video_buffer()
626 get_next_buf(dma_q, &buf); in cx231xx_reset_video_buffer()
628 dma_q->pos = 0; in cx231xx_reset_video_buffer()
629 dma_q->field1_done = 0; in cx231xx_reset_video_buffer()
630 dma_q->current_field = -1; in cx231xx_reset_video_buffer()
634 dma_q->bytes_left_in_line = dev->width << 1; in cx231xx_reset_video_buffer()
635 dma_q->lines_completed = 0; in cx231xx_reset_video_buffer()
638 int cx231xx_do_copy(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q, in cx231xx_do_copy() argument
658 current_line_bytes_copied = _line_size - dma_q->bytes_left_in_line; in cx231xx_do_copy()
661 offset = (dma_q->current_field == 1) ? 0 : _line_size; in cx231xx_do_copy()
667 startwrite += (dma_q->lines_completed * _line_size * 2); in cx231xx_do_copy()
672 lencopy = dma_q->bytes_left_in_line > bytes_to_copy ? in cx231xx_do_copy()
673 bytes_to_copy : dma_q->bytes_left_in_line; in cx231xx_do_copy()
695 u8 cx231xx_is_buffer_done(struct cx231xx *dev, struct cx231xx_dmaqueue *dma_q) in cx231xx_is_buffer_done() argument
700 buffer_complete = ((dma_q->current_field == 2) && in cx231xx_is_buffer_done()
701 (dma_q->lines_completed >= dma_q->lines_per_field) && in cx231xx_is_buffer_done()
702 dma_q->field1_done); in cx231xx_is_buffer_done()