Lines Matching refs:port

118 	struct saa7164_port *port = buf->port;  in saa7164_ts_verifier()  local
124 port->sync_errors = 0; in saa7164_ts_verifier()
125 port->v_cc_errors = 0; in saa7164_ts_verifier()
126 port->a_cc_errors = 0; in saa7164_ts_verifier()
130 port->sync_errors++; in saa7164_ts_verifier()
137 a = ((port->last_v_cc + 1) & 0x0f); in saa7164_ts_verifier()
140 port->last_v_cc, cc, i); in saa7164_ts_verifier()
141 port->v_cc_errors++; in saa7164_ts_verifier()
144 port->last_v_cc = cc; in saa7164_ts_verifier()
147 a = ((port->last_a_cc + 1) & 0x0f); in saa7164_ts_verifier()
150 port->last_a_cc, cc, i); in saa7164_ts_verifier()
151 port->a_cc_errors++; in saa7164_ts_verifier()
154 port->last_a_cc = cc; in saa7164_ts_verifier()
163 if (port->v_cc_errors && (port->done_first_interrupt > 1)) in saa7164_ts_verifier()
164 printk(KERN_ERR "video pid cc, %d errors\n", port->v_cc_errors); in saa7164_ts_verifier()
166 if (port->a_cc_errors && (port->done_first_interrupt > 1)) in saa7164_ts_verifier()
167 printk(KERN_ERR "audio pid cc, %d errors\n", port->a_cc_errors); in saa7164_ts_verifier()
169 if (port->sync_errors && (port->done_first_interrupt > 1)) in saa7164_ts_verifier()
170 printk(KERN_ERR "sync_errors = %d\n", port->sync_errors); in saa7164_ts_verifier()
172 if (port->done_first_interrupt == 1) in saa7164_ts_verifier()
173 port->done_first_interrupt++; in saa7164_ts_verifier()
235 static void saa7164_histogram_print(struct saa7164_port *port, in saa7164_histogram_print() argument
256 static void saa7164_work_enchandler_helper(struct saa7164_port *port, int bufnr) in saa7164_work_enchandler_helper() argument
258 struct saa7164_dev *dev = port->dev; in saa7164_work_enchandler_helper()
265 mutex_lock(&port->dmaqueue_lock); in saa7164_work_enchandler_helper()
266 list_for_each_safe(c, n, &port->dmaqueue.list) { in saa7164_work_enchandler_helper()
269 if (i++ > port->hwcfg.buffercount) { in saa7164_work_enchandler_helper()
304 if ((port->nr != SAA7164_PORT_VBI1) && (port->nr != SAA7164_PORT_VBI2)) { in saa7164_work_enchandler_helper()
306 if (port->encoder_params.stream_type == V4L2_MPEG_STREAM_TYPE_MPEG2_TS) in saa7164_work_enchandler_helper()
308 else if (port->encoder_params.stream_type == V4L2_MPEG_STREAM_TYPE_MPEG2_PS) in saa7164_work_enchandler_helper()
313 if (!list_empty(&port->list_buf_free.list)) { in saa7164_work_enchandler_helper()
316 ubuf = list_first_entry(&port->list_buf_free.list, in saa7164_work_enchandler_helper()
332 &port->list_buf_used.list); in saa7164_work_enchandler_helper()
335 wake_up_interruptible(&port->wait_read); in saa7164_work_enchandler_helper()
347 saa7164_buffer_zero_offsets(port, bufnr); in saa7164_work_enchandler_helper()
357 mutex_unlock(&port->dmaqueue_lock); in saa7164_work_enchandler_helper()
362 struct saa7164_port *port = in saa7164_work_enchandler() local
364 struct saa7164_dev *dev = port->dev; in saa7164_work_enchandler()
368 port->last_svc_msecs_diff = port->last_svc_msecs; in saa7164_work_enchandler()
369 port->last_svc_msecs = jiffies_to_msecs(jiffies); in saa7164_work_enchandler()
371 port->last_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_enchandler()
372 port->last_svc_msecs_diff; in saa7164_work_enchandler()
374 saa7164_histogram_update(&port->svc_interval, in saa7164_work_enchandler()
375 port->last_svc_msecs_diff); in saa7164_work_enchandler()
377 port->last_irq_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_enchandler()
378 port->last_irq_msecs; in saa7164_work_enchandler()
380 saa7164_histogram_update(&port->irq_svc_interval, in saa7164_work_enchandler()
381 port->last_irq_svc_msecs_diff); in saa7164_work_enchandler()
386 port->last_svc_msecs_diff, in saa7164_work_enchandler()
387 port->last_irq_svc_msecs_diff, in saa7164_work_enchandler()
388 port->last_svc_wp, in saa7164_work_enchandler()
389 port->last_svc_rp in saa7164_work_enchandler()
393 wp = saa7164_readl(port->bufcounter); in saa7164_work_enchandler()
394 if (wp > (port->hwcfg.buffercount - 1)) { in saa7164_work_enchandler()
401 mcb = (port->hwcfg.buffercount - 1); in saa7164_work_enchandler()
406 if (port->done_first_interrupt == 0) { in saa7164_work_enchandler()
407 port->done_first_interrupt++; in saa7164_work_enchandler()
410 rp = (port->last_svc_rp + 1) % 8; in saa7164_work_enchandler()
412 if (rp > (port->hwcfg.buffercount - 1)) { in saa7164_work_enchandler()
417 saa7164_work_enchandler_helper(port, rp); in saa7164_work_enchandler()
418 port->last_svc_rp = rp; in saa7164_work_enchandler()
426 if (print_histogram == port->nr) { in saa7164_work_enchandler()
427 saa7164_histogram_print(port, &port->irq_interval); in saa7164_work_enchandler()
428 saa7164_histogram_print(port, &port->svc_interval); in saa7164_work_enchandler()
429 saa7164_histogram_print(port, &port->irq_svc_interval); in saa7164_work_enchandler()
430 saa7164_histogram_print(port, &port->read_interval); in saa7164_work_enchandler()
431 saa7164_histogram_print(port, &port->poll_interval); in saa7164_work_enchandler()
433 print_histogram = 64 + port->nr; in saa7164_work_enchandler()
439 struct saa7164_port *port = in saa7164_work_vbihandler() local
441 struct saa7164_dev *dev = port->dev; in saa7164_work_vbihandler()
445 port->last_svc_msecs_diff = port->last_svc_msecs; in saa7164_work_vbihandler()
446 port->last_svc_msecs = jiffies_to_msecs(jiffies); in saa7164_work_vbihandler()
447 port->last_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_vbihandler()
448 port->last_svc_msecs_diff; in saa7164_work_vbihandler()
450 saa7164_histogram_update(&port->svc_interval, in saa7164_work_vbihandler()
451 port->last_svc_msecs_diff); in saa7164_work_vbihandler()
453 port->last_irq_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_vbihandler()
454 port->last_irq_msecs; in saa7164_work_vbihandler()
456 saa7164_histogram_update(&port->irq_svc_interval, in saa7164_work_vbihandler()
457 port->last_irq_svc_msecs_diff); in saa7164_work_vbihandler()
462 port->last_svc_msecs_diff, in saa7164_work_vbihandler()
463 port->last_irq_svc_msecs_diff, in saa7164_work_vbihandler()
464 port->last_svc_wp, in saa7164_work_vbihandler()
465 port->last_svc_rp in saa7164_work_vbihandler()
469 wp = saa7164_readl(port->bufcounter); in saa7164_work_vbihandler()
470 if (wp > (port->hwcfg.buffercount - 1)) { in saa7164_work_vbihandler()
477 mcb = (port->hwcfg.buffercount - 1); in saa7164_work_vbihandler()
482 if (port->done_first_interrupt == 0) { in saa7164_work_vbihandler()
483 port->done_first_interrupt++; in saa7164_work_vbihandler()
486 rp = (port->last_svc_rp + 1) % 8; in saa7164_work_vbihandler()
488 if (rp > (port->hwcfg.buffercount - 1)) { in saa7164_work_vbihandler()
493 saa7164_work_enchandler_helper(port, rp); in saa7164_work_vbihandler()
494 port->last_svc_rp = rp; in saa7164_work_vbihandler()
502 if (print_histogram == port->nr) { in saa7164_work_vbihandler()
503 saa7164_histogram_print(port, &port->irq_interval); in saa7164_work_vbihandler()
504 saa7164_histogram_print(port, &port->svc_interval); in saa7164_work_vbihandler()
505 saa7164_histogram_print(port, &port->irq_svc_interval); in saa7164_work_vbihandler()
506 saa7164_histogram_print(port, &port->read_interval); in saa7164_work_vbihandler()
507 saa7164_histogram_print(port, &port->poll_interval); in saa7164_work_vbihandler()
509 print_histogram = 64 + port->nr; in saa7164_work_vbihandler()
523 struct saa7164_port *port = buf->port; in saa7164_buffer_deliver() local
526 dvb_dmx_swfilter_packets(&port->dvb.demux, (u8 *)buf->cpu, in saa7164_buffer_deliver()
531 static irqreturn_t saa7164_irq_vbi(struct saa7164_port *port) in saa7164_irq_vbi() argument
533 struct saa7164_dev *dev = port->dev; in saa7164_irq_vbi()
536 port->last_irq_msecs_diff = port->last_irq_msecs; in saa7164_irq_vbi()
539 port->last_irq_msecs = jiffies_to_msecs(jiffies); in saa7164_irq_vbi()
542 port->last_irq_msecs_diff = port->last_irq_msecs - in saa7164_irq_vbi()
543 port->last_irq_msecs_diff; in saa7164_irq_vbi()
545 saa7164_histogram_update(&port->irq_interval, in saa7164_irq_vbi()
546 port->last_irq_msecs_diff); in saa7164_irq_vbi()
549 port->last_irq_msecs_diff); in saa7164_irq_vbi()
552 schedule_work(&port->workenc); in saa7164_irq_vbi()
556 static irqreturn_t saa7164_irq_encoder(struct saa7164_port *port) in saa7164_irq_encoder() argument
558 struct saa7164_dev *dev = port->dev; in saa7164_irq_encoder()
561 port->last_irq_msecs_diff = port->last_irq_msecs; in saa7164_irq_encoder()
564 port->last_irq_msecs = jiffies_to_msecs(jiffies); in saa7164_irq_encoder()
567 port->last_irq_msecs_diff = port->last_irq_msecs - in saa7164_irq_encoder()
568 port->last_irq_msecs_diff; in saa7164_irq_encoder()
570 saa7164_histogram_update(&port->irq_interval, in saa7164_irq_encoder()
571 port->last_irq_msecs_diff); in saa7164_irq_encoder()
574 port->last_irq_msecs_diff); in saa7164_irq_encoder()
576 schedule_work(&port->workenc); in saa7164_irq_encoder()
580 static irqreturn_t saa7164_irq_ts(struct saa7164_port *port) in saa7164_irq_ts() argument
582 struct saa7164_dev *dev = port->dev; in saa7164_irq_ts()
588 wp = saa7164_readl(port->bufcounter); in saa7164_irq_ts()
589 if (wp > (port->hwcfg.buffercount - 1)) in saa7164_irq_ts()
594 rp = (port->hwcfg.buffercount - 1); in saa7164_irq_ts()
600 list_for_each_safe(c, n, &port->dmaqueue.list) { in saa7164_irq_ts()
602 if (i++ > port->hwcfg.buffercount) in saa7164_irq_ts()
909 struct saa7164_port *port = NULL; in saa7164_port_init() local
914 port = &dev->ports[portnr]; in saa7164_port_init()
916 port->dev = dev; in saa7164_port_init()
917 port->nr = portnr; in saa7164_port_init()
920 port->type = SAA7164_MPEG_DVB; in saa7164_port_init()
923 port->type = SAA7164_MPEG_ENCODER; in saa7164_port_init()
926 INIT_WORK(&port->workenc, saa7164_work_enchandler); in saa7164_port_init()
928 port->type = SAA7164_MPEG_VBI; in saa7164_port_init()
931 INIT_WORK(&port->workenc, saa7164_work_vbihandler); in saa7164_port_init()
936 mutex_init(&port->dvb.lock); in saa7164_port_init()
937 INIT_LIST_HEAD(&port->dmaqueue.list); in saa7164_port_init()
938 mutex_init(&port->dmaqueue_lock); in saa7164_port_init()
940 INIT_LIST_HEAD(&port->list_buf_used.list); in saa7164_port_init()
941 INIT_LIST_HEAD(&port->list_buf_free.list); in saa7164_port_init()
942 init_waitqueue_head(&port->wait_read); in saa7164_port_init()
945 saa7164_histogram_reset(&port->irq_interval, "irq intervals"); in saa7164_port_init()
946 saa7164_histogram_reset(&port->svc_interval, "deferred intervals"); in saa7164_port_init()
947 saa7164_histogram_reset(&port->irq_svc_interval, in saa7164_port_init()
949 saa7164_histogram_reset(&port->read_interval, in saa7164_port_init()
951 saa7164_histogram_reset(&port->poll_interval, in saa7164_port_init()