• Home
  • Raw
  • Download

Lines Matching refs:s

32 static void ivtv_dma_dec_start(struct ivtv_stream *s);
43 struct ivtv_stream *s = &itv->streams[IVTV_ENC_STREAM_TYPE_PCM]; in ivtv_pcm_work_handler() local
55 buf = ivtv_dequeue(s, &s->q_io); in ivtv_pcm_work_handler()
57 buf = ivtv_dequeue(s, &s->q_full); in ivtv_pcm_work_handler()
66 ivtv_enqueue(s, buf, &s->q_free); in ivtv_pcm_work_handler()
72 struct ivtv_stream *s = &itv->streams[itv->cur_pio_stream]; in ivtv_pio_work_handler() local
78 s->vdev.v4l2_dev == NULL || !ivtv_use_pio(s)) { in ivtv_pio_work_handler()
84 IVTV_DEBUG_HI_DMA("Process PIO %s\n", s->name); in ivtv_pio_work_handler()
85 list_for_each_entry(buf, &s->q_dma.list, list) { in ivtv_pio_work_handler()
86 u32 size = s->sg_processing[i].size & 0x3ffff; in ivtv_pio_work_handler()
89 if (s->type == IVTV_DEC_STREAM_TYPE_VBI) { in ivtv_pio_work_handler()
90 memcpy_fromio(buf->buf, itv->dec_mem + s->sg_processing[i].src - IVTV_DECODER_OFFSET, size); in ivtv_pio_work_handler()
93 memcpy_fromio(buf->buf, itv->enc_mem + s->sg_processing[i].src, size); in ivtv_pio_work_handler()
96 if (i == s->sg_processing_size) in ivtv_pio_work_handler()
123 static int stream_enc_dma_append(struct ivtv_stream *s, u32 data[CX2341X_MBOX_MAX_DATA]) in stream_enc_dma_append() argument
125 struct ivtv *itv = s->itv; in stream_enc_dma_append()
130 int skip_bufs = s->q_predma.buffers; in stream_enc_dma_append()
131 int idx = s->sg_pending_size; in stream_enc_dma_append()
135 if (s->vdev.v4l2_dev == NULL) { in stream_enc_dma_append()
136 IVTV_DEBUG_WARN("Stream %s not started\n", s->name); in stream_enc_dma_append()
139 if (!test_bit(IVTV_F_S_CLAIMED, &s->s_flags)) { in stream_enc_dma_append()
140 IVTV_DEBUG_WARN("Stream %s not open\n", s->name); in stream_enc_dma_append()
145 switch (s->type) { in stream_enc_dma_append()
149 s->pending_pts = 0; in stream_enc_dma_append()
157 s->pending_pts = ((u64) data[5] << 32) | data[6]; in stream_enc_dma_append()
163 s->pending_pts = read_dec(offset - 8) | in stream_enc_dma_append()
176 s->pending_pts = read_enc(offset - 4) | ((u64)read_enc(offset - 8) << 32); in stream_enc_dma_append()
182 s->pending_pts = 0; in stream_enc_dma_append()
191 if (s->sg_pending_size == 0 && ivtv_use_dma(s)) { in stream_enc_dma_append()
192 if (itv->has_cx23415 && (s->type == IVTV_ENC_STREAM_TYPE_PCM || in stream_enc_dma_append()
193 s->type == IVTV_DEC_STREAM_TYPE_VBI)) { in stream_enc_dma_append()
194 s->pending_backup = read_dec(offset - IVTV_DECODER_OFFSET); in stream_enc_dma_append()
198 s->pending_backup = read_enc(offset); in stream_enc_dma_append()
201 s->pending_offset = offset; in stream_enc_dma_append()
205 if (s->type == IVTV_ENC_STREAM_TYPE_YUV) { in stream_enc_dma_append()
209 bytes_needed = s->buf_size * ((bytes_needed + s->buf_size - 1) / s->buf_size); in stream_enc_dma_append()
214 ivtv_use_pio(s) ? "PIO" : "DMA", s->name, bytes_needed, offset); in stream_enc_dma_append()
216 rc = ivtv_queue_move(s, &s->q_free, &s->q_full, &s->q_predma, bytes_needed); in stream_enc_dma_append()
219 bytes_needed, s->name); in stream_enc_dma_append()
222 if (rc && !s->buffers_stolen && test_bit(IVTV_F_S_APPL_IO, &s->s_flags)) { in stream_enc_dma_append()
223 IVTV_WARN("All %s stream buffers are full. Dropping data.\n", s->name); in stream_enc_dma_append()
226 s->buffers_stolen = rc; in stream_enc_dma_append()
229 buf = list_entry(s->q_predma.list.next, struct ivtv_buffer, list); in stream_enc_dma_append()
231 list_for_each_entry(buf, &s->q_predma.list, list) { in stream_enc_dma_append()
234 s->sg_pending[idx].dst = buf->dma_handle; in stream_enc_dma_append()
235 s->sg_pending[idx].src = offset; in stream_enc_dma_append()
236 s->sg_pending[idx].size = s->buf_size; in stream_enc_dma_append()
237 buf->bytesused = min(size, s->buf_size); in stream_enc_dma_append()
238 buf->dma_xfer_cnt = s->dma_xfer_cnt; in stream_enc_dma_append()
240 s->q_predma.bytesused += buf->bytesused; in stream_enc_dma_append()
242 offset += s->buf_size; in stream_enc_dma_append()
245 ivtv_buf_sync_for_device(s, buf); in stream_enc_dma_append()
254 s->sg_pending_size = idx; in stream_enc_dma_append()
258 static void dma_post(struct ivtv_stream *s) in dma_post() argument
260 struct ivtv *itv = s->itv; in dma_post()
267 IVTV_DEBUG_HI_DMA("%s %s completed (%x)\n", ivtv_use_pio(s) ? "PIO" : "DMA", in dma_post()
268 s->name, s->dma_offset); in dma_post()
269 list_for_each(p, &s->q_dma.list) { in dma_post()
274 ivtv_buf_sync_for_cpu(s, buf); in dma_post()
276 if (x == 0 && ivtv_use_dma(s)) { in dma_post()
277 offset = s->dma_last_offset; in dma_post()
285 IVTV_DEBUG_WARN("%s: Couldn't find start of buffer within the first 256 bytes\n", s->name); in dma_post()
286 offset = s->dma_last_offset; in dma_post()
288 if (s->dma_last_offset != offset) in dma_post()
289 IVTV_DEBUG_WARN("%s: offset %d -> %d\n", s->name, s->dma_last_offset, offset); in dma_post()
290 s->dma_last_offset = offset; in dma_post()
292 if (itv->has_cx23415 && (s->type == IVTV_ENC_STREAM_TYPE_PCM || in dma_post()
293 s->type == IVTV_DEC_STREAM_TYPE_VBI)) { in dma_post()
294 write_dec_sync(0, s->dma_offset - IVTV_DECODER_OFFSET); in dma_post()
297 write_enc_sync(0, s->dma_offset); in dma_post()
303 *u32buf = cpu_to_le32(s->dma_backup); in dma_post()
307 if (s->type == IVTV_ENC_STREAM_TYPE_MPG || in dma_post()
308 s->type == IVTV_ENC_STREAM_TYPE_VBI) in dma_post()
312 buf->bytesused += s->dma_last_offset; in dma_post()
313 if (buf && s->type == IVTV_DEC_STREAM_TYPE_VBI) { in dma_post()
314 list_for_each_entry(buf, &s->q_dma.list, list) { in dma_post()
316 s->q_dma.bytesused -= buf->bytesused; in dma_post()
317 ivtv_process_vbi_data(itv, buf, 0, s->type); in dma_post()
318 s->q_dma.bytesused += buf->bytesused; in dma_post()
320 if (s->fh == NULL) { in dma_post()
321 ivtv_queue_move(s, &s->q_dma, NULL, &s->q_free, 0); in dma_post()
326 ivtv_queue_move(s, &s->q_dma, NULL, &s->q_full, s->q_dma.bytesused); in dma_post()
328 if (s->type == IVTV_ENC_STREAM_TYPE_PCM && in dma_post()
345 if (s->fh) in dma_post()
346 wake_up(&s->waitq); in dma_post()
349 void ivtv_dma_stream_dec_prepare(struct ivtv_stream *s, u32 offset, int lock) in ivtv_dma_stream_dec_prepare() argument
351 struct ivtv *itv = s->itv; in ivtv_dma_stream_dec_prepare()
362 IVTV_DEBUG_HI_DMA("DEC PREPARE DMA %s: %08x %08x\n", s->name, s->q_predma.bytesused, offset); in ivtv_dma_stream_dec_prepare()
365 if (s->type == IVTV_DEC_STREAM_TYPE_YUV && f->offset_y) { in ivtv_dma_stream_dec_prepare()
367 s->sg_pending[idx].src = yi->blanking_dmaptr; in ivtv_dma_stream_dec_prepare()
368 s->sg_pending[idx].dst = offset; in ivtv_dma_stream_dec_prepare()
369 s->sg_pending[idx].size = 720 * 16; in ivtv_dma_stream_dec_prepare()
375 list_for_each_entry(buf, &s->q_predma.list, list) { in ivtv_dma_stream_dec_prepare()
377 if (s->type == IVTV_DEC_STREAM_TYPE_YUV && !y_done && in ivtv_dma_stream_dec_prepare()
379 s->sg_pending[idx].src = buf->dma_handle; in ivtv_dma_stream_dec_prepare()
380 s->sg_pending[idx].dst = offset; in ivtv_dma_stream_dec_prepare()
381 s->sg_pending[idx].size = y_size - bytes_written; in ivtv_dma_stream_dec_prepare()
383 if (s->sg_pending[idx].size != buf->bytesused) { in ivtv_dma_stream_dec_prepare()
385 s->sg_pending[idx].src = in ivtv_dma_stream_dec_prepare()
386 buf->dma_handle + s->sg_pending[idx - 1].size; in ivtv_dma_stream_dec_prepare()
387 s->sg_pending[idx].dst = offset; in ivtv_dma_stream_dec_prepare()
388 s->sg_pending[idx].size = in ivtv_dma_stream_dec_prepare()
389 buf->bytesused - s->sg_pending[idx - 1].size; in ivtv_dma_stream_dec_prepare()
390 offset += s->sg_pending[idx].size; in ivtv_dma_stream_dec_prepare()
394 s->sg_pending[idx].src = buf->dma_handle; in ivtv_dma_stream_dec_prepare()
395 s->sg_pending[idx].dst = offset; in ivtv_dma_stream_dec_prepare()
396 s->sg_pending[idx].size = buf->bytesused; in ivtv_dma_stream_dec_prepare()
402 ivtv_buf_sync_for_device(s, buf); in ivtv_dma_stream_dec_prepare()
405 s->sg_pending_size = idx; in ivtv_dma_stream_dec_prepare()
408 ivtv_stream_sync_for_device(s); in ivtv_dma_stream_dec_prepare()
414 ivtv_dma_dec_start(s); in ivtv_dma_stream_dec_prepare()
416 set_bit(IVTV_F_S_DMA_PENDING, &s->s_flags); in ivtv_dma_stream_dec_prepare()
420 ivtv_dma_dec_start(s); in ivtv_dma_stream_dec_prepare()
422 set_bit(IVTV_F_S_DMA_PENDING, &s->s_flags); in ivtv_dma_stream_dec_prepare()
426 static void ivtv_dma_enc_start_xfer(struct ivtv_stream *s) in ivtv_dma_enc_start_xfer() argument
428 struct ivtv *itv = s->itv; in ivtv_dma_enc_start_xfer()
430 s->sg_dma->src = cpu_to_le32(s->sg_processing[s->sg_processed].src); in ivtv_dma_enc_start_xfer()
431 s->sg_dma->dst = cpu_to_le32(s->sg_processing[s->sg_processed].dst); in ivtv_dma_enc_start_xfer()
432 s->sg_dma->size = cpu_to_le32(s->sg_processing[s->sg_processed].size | 0x80000000); in ivtv_dma_enc_start_xfer()
433 s->sg_processed++; in ivtv_dma_enc_start_xfer()
435 ivtv_stream_sync_for_device(s); in ivtv_dma_enc_start_xfer()
436 write_reg(s->sg_handle, IVTV_REG_ENCDMAADDR); in ivtv_dma_enc_start_xfer()
442 static void ivtv_dma_dec_start_xfer(struct ivtv_stream *s) in ivtv_dma_dec_start_xfer() argument
444 struct ivtv *itv = s->itv; in ivtv_dma_dec_start_xfer()
446 s->sg_dma->src = cpu_to_le32(s->sg_processing[s->sg_processed].src); in ivtv_dma_dec_start_xfer()
447 s->sg_dma->dst = cpu_to_le32(s->sg_processing[s->sg_processed].dst); in ivtv_dma_dec_start_xfer()
448 s->sg_dma->size = cpu_to_le32(s->sg_processing[s->sg_processed].size | 0x80000000); in ivtv_dma_dec_start_xfer()
449 s->sg_processed++; in ivtv_dma_dec_start_xfer()
451 ivtv_stream_sync_for_device(s); in ivtv_dma_dec_start_xfer()
452 write_reg(s->sg_handle, IVTV_REG_DECDMAADDR); in ivtv_dma_dec_start_xfer()
459 static void ivtv_dma_enc_start(struct ivtv_stream *s) in ivtv_dma_enc_start() argument
461 struct ivtv *itv = s->itv; in ivtv_dma_enc_start()
465 IVTV_DEBUG_HI_DMA("start %s for %s\n", ivtv_use_dma(s) ? "DMA" : "PIO", s->name); in ivtv_dma_enc_start()
467 if (s->q_predma.bytesused) in ivtv_dma_enc_start()
468 ivtv_queue_move(s, &s->q_predma, NULL, &s->q_dma, s->q_predma.bytesused); in ivtv_dma_enc_start()
470 if (ivtv_use_dma(s)) in ivtv_dma_enc_start()
471 s->sg_pending[s->sg_pending_size - 1].size += 256; in ivtv_dma_enc_start()
481 clear_bit(IVTV_F_S_DMA_HAS_VBI, &s->s_flags); in ivtv_dma_enc_start()
482 if (s->type == IVTV_ENC_STREAM_TYPE_MPG && s_vbi->sg_pending_size && in ivtv_dma_enc_start()
483 s->sg_pending_size + s_vbi->sg_pending_size <= s->buffers) { in ivtv_dma_enc_start()
488 s->sg_pending[s->sg_pending_size++] = s_vbi->sg_pending[i]; in ivtv_dma_enc_start()
493 set_bit(IVTV_F_S_DMA_HAS_VBI, &s->s_flags); in ivtv_dma_enc_start()
497 s->dma_xfer_cnt++; in ivtv_dma_enc_start()
498 memcpy(s->sg_processing, s->sg_pending, sizeof(struct ivtv_sg_host_element) * s->sg_pending_size); in ivtv_dma_enc_start()
499 s->sg_processing_size = s->sg_pending_size; in ivtv_dma_enc_start()
500 s->sg_pending_size = 0; in ivtv_dma_enc_start()
501 s->sg_processed = 0; in ivtv_dma_enc_start()
502 s->dma_offset = s->pending_offset; in ivtv_dma_enc_start()
503 s->dma_backup = s->pending_backup; in ivtv_dma_enc_start()
504 s->dma_pts = s->pending_pts; in ivtv_dma_enc_start()
506 if (ivtv_use_pio(s)) { in ivtv_dma_enc_start()
510 itv->cur_pio_stream = s->type; in ivtv_dma_enc_start()
514 ivtv_dma_enc_start_xfer(s); in ivtv_dma_enc_start()
516 itv->cur_dma_stream = s->type; in ivtv_dma_enc_start()
520 static void ivtv_dma_dec_start(struct ivtv_stream *s) in ivtv_dma_dec_start() argument
522 struct ivtv *itv = s->itv; in ivtv_dma_dec_start()
524 if (s->q_predma.bytesused) in ivtv_dma_dec_start()
525 ivtv_queue_move(s, &s->q_predma, NULL, &s->q_dma, s->q_predma.bytesused); in ivtv_dma_dec_start()
526 s->dma_xfer_cnt++; in ivtv_dma_dec_start()
527 memcpy(s->sg_processing, s->sg_pending, sizeof(struct ivtv_sg_host_element) * s->sg_pending_size); in ivtv_dma_dec_start()
528 s->sg_processing_size = s->sg_pending_size; in ivtv_dma_dec_start()
529 s->sg_pending_size = 0; in ivtv_dma_dec_start()
530 s->sg_processed = 0; in ivtv_dma_dec_start()
532 IVTV_DEBUG_HI_DMA("start DMA for %s\n", s->name); in ivtv_dma_dec_start()
534 ivtv_dma_dec_start_xfer(s); in ivtv_dma_dec_start()
536 itv->cur_dma_stream = s->type; in ivtv_dma_dec_start()
541 struct ivtv_stream *s = NULL; in ivtv_irq_dma_read() local
553 s = &itv->streams[itv->cur_dma_stream]; in ivtv_irq_dma_read()
554 ivtv_stream_sync_for_cpu(s); in ivtv_irq_dma_read()
559 s->sg_processed, s->sg_processing_size, itv->dma_retries); in ivtv_irq_dma_read()
564 s->sg_processed = s->sg_processing_size; in ivtv_irq_dma_read()
569 s->sg_processed = 0; in ivtv_irq_dma_read()
573 if (s->sg_processed < s->sg_processing_size) { in ivtv_irq_dma_read()
575 ivtv_dma_dec_start_xfer(s); in ivtv_irq_dma_read()
578 if (s->type == IVTV_DEC_STREAM_TYPE_YUV) in ivtv_irq_dma_read()
580 IVTV_DEBUG_HI_DMA("DEC DATA READ %s: %d\n", s->name, s->q_dma.bytesused); in ivtv_irq_dma_read()
588 ivtv_vapi(itv, CX2341X_DEC_SCHED_DMA_FROM_HOST, 3, 0, s->q_dma.bytesused, in ivtv_irq_dma_read()
592 while ((buf = ivtv_dequeue(s, &s->q_dma)) != NULL) { in ivtv_irq_dma_read()
593 ivtv_buf_sync_for_cpu(s, buf); in ivtv_irq_dma_read()
594 ivtv_enqueue(s, buf, &s->q_free); in ivtv_irq_dma_read()
596 wake_up(&s->waitq); in ivtv_irq_dma_read()
607 struct ivtv_stream *s; in ivtv_irq_enc_dma_complete() local
617 s = &itv->streams[itv->cur_dma_stream]; in ivtv_irq_enc_dma_complete()
618 ivtv_stream_sync_for_cpu(s); in ivtv_irq_enc_dma_complete()
622 s->dma_offset, s->sg_processed, s->sg_processing_size, itv->dma_retries); in ivtv_irq_enc_dma_complete()
627 s->sg_processed = s->sg_processing_size; in ivtv_irq_enc_dma_complete()
632 s->sg_processed = 0; in ivtv_irq_enc_dma_complete()
636 if (s->sg_processed < s->sg_processing_size) { in ivtv_irq_enc_dma_complete()
638 ivtv_dma_enc_start_xfer(s); in ivtv_irq_enc_dma_complete()
643 dma_post(s); in ivtv_irq_enc_dma_complete()
644 if (test_and_clear_bit(IVTV_F_S_DMA_HAS_VBI, &s->s_flags)) { in ivtv_irq_enc_dma_complete()
645 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI]; in ivtv_irq_enc_dma_complete()
646 dma_post(s); in ivtv_irq_enc_dma_complete()
648 s->sg_processing_size = 0; in ivtv_irq_enc_dma_complete()
649 s->sg_processed = 0; in ivtv_irq_enc_dma_complete()
655 struct ivtv_stream *s; in ivtv_irq_enc_pio_complete() local
661 s = &itv->streams[itv->cur_pio_stream]; in ivtv_irq_enc_pio_complete()
662 IVTV_DEBUG_HI_IRQ("ENC PIO COMPLETE %s\n", s->name); in ivtv_irq_enc_pio_complete()
665 dma_post(s); in ivtv_irq_enc_pio_complete()
666 if (s->type == IVTV_ENC_STREAM_TYPE_MPG) in ivtv_irq_enc_pio_complete()
668 else if (s->type == IVTV_ENC_STREAM_TYPE_YUV) in ivtv_irq_enc_pio_complete()
670 else if (s->type == IVTV_ENC_STREAM_TYPE_PCM) in ivtv_irq_enc_pio_complete()
673 if (test_and_clear_bit(IVTV_F_S_DMA_HAS_VBI, &s->s_flags)) { in ivtv_irq_enc_pio_complete()
674 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI]; in ivtv_irq_enc_pio_complete()
675 dma_post(s); in ivtv_irq_enc_pio_complete()
706 struct ivtv_stream *s = &itv->streams[itv->cur_dma_stream]; in ivtv_irq_dma_err() local
708 if (s->type >= IVTV_DEC_STREAM_TYPE_MPG) { in ivtv_irq_dma_err()
714 ivtv_dma_dec_start(s); in ivtv_irq_dma_err()
735 s->sg_processed = 0; in ivtv_irq_dma_err()
737 ivtv_dma_enc_start_xfer(s); in ivtv_irq_dma_err()
757 struct ivtv_stream *s; in ivtv_irq_enc_start_cap() local
768 s = &itv->streams[ivtv_stream_map[data[0]]]; in ivtv_irq_enc_start_cap()
769 if (!stream_enc_dma_append(s, data)) { in ivtv_irq_enc_start_cap()
770 set_bit(ivtv_use_pio(s) ? IVTV_F_S_PIO_PENDING : IVTV_F_S_DMA_PENDING, &s->s_flags); in ivtv_irq_enc_start_cap()
777 struct ivtv_stream *s; in ivtv_irq_enc_vbi_cap() local
780 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI]; in ivtv_irq_enc_vbi_cap()
782 if (!stream_enc_dma_append(s, data)) in ivtv_irq_enc_vbi_cap()
783 set_bit(ivtv_use_pio(s) ? IVTV_F_S_PIO_PENDING : IVTV_F_S_DMA_PENDING, &s->s_flags); in ivtv_irq_enc_vbi_cap()
789 struct ivtv_stream *s = &itv->streams[IVTV_DEC_STREAM_TYPE_VBI]; in ivtv_irq_dec_vbi_reinsert() local
792 if (test_bit(IVTV_F_S_CLAIMED, &s->s_flags) && in ivtv_irq_dec_vbi_reinsert()
793 !stream_enc_dma_append(s, data)) { in ivtv_irq_dec_vbi_reinsert()
794 set_bit(IVTV_F_S_PIO_PENDING, &s->s_flags); in ivtv_irq_dec_vbi_reinsert()
801 struct ivtv_stream *s; in ivtv_irq_dec_data_req() local
812 s = &itv->streams[IVTV_DEC_STREAM_TYPE_YUV]; in ivtv_irq_dec_data_req()
818 s = &itv->streams[IVTV_DEC_STREAM_TYPE_MPG]; in ivtv_irq_dec_data_req()
820 IVTV_DEBUG_HI_IRQ("DEC DATA REQ %s: %d %08x %u\n", s->name, s->q_full.bytesused, in ivtv_irq_dec_data_req()
822 if (itv->dma_data_req_size == 0 || s->q_full.bytesused < itv->dma_data_req_size) { in ivtv_irq_dec_data_req()
823 set_bit(IVTV_F_S_NEEDS_DATA, &s->s_flags); in ivtv_irq_dec_data_req()
828 clear_bit(IVTV_F_S_NEEDS_DATA, &s->s_flags); in ivtv_irq_dec_data_req()
829 ivtv_queue_move(s, &s->q_full, NULL, &s->q_predma, itv->dma_data_req_size); in ivtv_irq_dec_data_req()
830 ivtv_dma_stream_dec_prepare(s, itv->dma_data_req_offset + IVTV_DECODER_OFFSET, 0); in ivtv_irq_dec_data_req()
877 struct ivtv_stream *s = ivtv_get_output_stream(itv); in ivtv_irq_vsync() local
890 if (s) in ivtv_irq_vsync()
891 wake_up(&s->waitq); in ivtv_irq_vsync()
893 if (s && s->vdev.v4l2_dev) in ivtv_irq_vsync()
894 v4l2_event_queue(&s->vdev, frame ? &evtop : &evbottom); in ivtv_irq_vsync()
1034 struct ivtv_stream *s = &itv->streams[idx]; in ivtv_irq_handler() local
1036 if (!test_and_clear_bit(IVTV_F_S_DMA_PENDING, &s->s_flags)) in ivtv_irq_handler()
1038 if (s->type >= IVTV_DEC_STREAM_TYPE_MPG) in ivtv_irq_handler()
1039 ivtv_dma_dec_start(s); in ivtv_irq_handler()
1041 ivtv_dma_enc_start(s); in ivtv_irq_handler()
1054 struct ivtv_stream *s = &itv->streams[idx]; in ivtv_irq_handler() local
1056 if (!test_and_clear_bit(IVTV_F_S_PIO_PENDING, &s->s_flags)) in ivtv_irq_handler()
1058 if (s->type == IVTV_DEC_STREAM_TYPE_VBI || s->type < IVTV_DEC_STREAM_TYPE_MPG) in ivtv_irq_handler()
1059 ivtv_dma_enc_start(s); in ivtv_irq_handler()