Lines Matching refs:port
123 struct saa7164_port *port = buf->port; in saa7164_ts_verifier() local
129 port->sync_errors = 0; in saa7164_ts_verifier()
130 port->v_cc_errors = 0; in saa7164_ts_verifier()
131 port->a_cc_errors = 0; in saa7164_ts_verifier()
135 port->sync_errors++; in saa7164_ts_verifier()
142 a = ((port->last_v_cc + 1) & 0x0f); in saa7164_ts_verifier()
145 port->last_v_cc, cc, i); in saa7164_ts_verifier()
146 port->v_cc_errors++; in saa7164_ts_verifier()
149 port->last_v_cc = cc; in saa7164_ts_verifier()
152 a = ((port->last_a_cc + 1) & 0x0f); in saa7164_ts_verifier()
155 port->last_a_cc, cc, i); in saa7164_ts_verifier()
156 port->a_cc_errors++; in saa7164_ts_verifier()
159 port->last_a_cc = cc; in saa7164_ts_verifier()
168 if (port->v_cc_errors && (port->done_first_interrupt > 1)) in saa7164_ts_verifier()
169 printk(KERN_ERR "video pid cc, %d errors\n", port->v_cc_errors); in saa7164_ts_verifier()
171 if (port->a_cc_errors && (port->done_first_interrupt > 1)) in saa7164_ts_verifier()
172 printk(KERN_ERR "audio pid cc, %d errors\n", port->a_cc_errors); in saa7164_ts_verifier()
174 if (port->sync_errors && (port->done_first_interrupt > 1)) in saa7164_ts_verifier()
175 printk(KERN_ERR "sync_errors = %d\n", port->sync_errors); in saa7164_ts_verifier()
177 if (port->done_first_interrupt == 1) in saa7164_ts_verifier()
178 port->done_first_interrupt++; in saa7164_ts_verifier()
240 static void saa7164_histogram_print(struct saa7164_port *port, in saa7164_histogram_print() argument
261 static void saa7164_work_enchandler_helper(struct saa7164_port *port, int bufnr) in saa7164_work_enchandler_helper() argument
263 struct saa7164_dev *dev = port->dev; in saa7164_work_enchandler_helper()
270 mutex_lock(&port->dmaqueue_lock); in saa7164_work_enchandler_helper()
271 list_for_each_safe(c, n, &port->dmaqueue.list) { in saa7164_work_enchandler_helper()
274 if (i++ > port->hwcfg.buffercount) { in saa7164_work_enchandler_helper()
309 if ((port->nr != SAA7164_PORT_VBI1) && (port->nr != SAA7164_PORT_VBI2)) { in saa7164_work_enchandler_helper()
311 if (port->encoder_params.stream_type == V4L2_MPEG_STREAM_TYPE_MPEG2_TS) in saa7164_work_enchandler_helper()
313 else if (port->encoder_params.stream_type == V4L2_MPEG_STREAM_TYPE_MPEG2_PS) in saa7164_work_enchandler_helper()
318 if (!list_empty(&port->list_buf_free.list)) { in saa7164_work_enchandler_helper()
321 ubuf = list_first_entry(&port->list_buf_free.list, in saa7164_work_enchandler_helper()
337 &port->list_buf_used.list); in saa7164_work_enchandler_helper()
340 wake_up_interruptible(&port->wait_read); in saa7164_work_enchandler_helper()
352 saa7164_buffer_zero_offsets(port, bufnr); in saa7164_work_enchandler_helper()
362 mutex_unlock(&port->dmaqueue_lock); in saa7164_work_enchandler_helper()
367 struct saa7164_port *port = in saa7164_work_enchandler() local
369 struct saa7164_dev *dev = port->dev; in saa7164_work_enchandler()
373 port->last_svc_msecs_diff = port->last_svc_msecs; in saa7164_work_enchandler()
374 port->last_svc_msecs = jiffies_to_msecs(jiffies); in saa7164_work_enchandler()
376 port->last_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_enchandler()
377 port->last_svc_msecs_diff; in saa7164_work_enchandler()
379 saa7164_histogram_update(&port->svc_interval, in saa7164_work_enchandler()
380 port->last_svc_msecs_diff); in saa7164_work_enchandler()
382 port->last_irq_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_enchandler()
383 port->last_irq_msecs; in saa7164_work_enchandler()
385 saa7164_histogram_update(&port->irq_svc_interval, in saa7164_work_enchandler()
386 port->last_irq_svc_msecs_diff); in saa7164_work_enchandler()
391 port->last_svc_msecs_diff, in saa7164_work_enchandler()
392 port->last_irq_svc_msecs_diff, in saa7164_work_enchandler()
393 port->last_svc_wp, in saa7164_work_enchandler()
394 port->last_svc_rp in saa7164_work_enchandler()
398 wp = saa7164_readl(port->bufcounter); in saa7164_work_enchandler()
399 if (wp > (port->hwcfg.buffercount - 1)) { in saa7164_work_enchandler()
406 mcb = (port->hwcfg.buffercount - 1); in saa7164_work_enchandler()
411 if (port->done_first_interrupt == 0) { in saa7164_work_enchandler()
412 port->done_first_interrupt++; in saa7164_work_enchandler()
415 rp = (port->last_svc_rp + 1) % 8; in saa7164_work_enchandler()
417 if (rp > (port->hwcfg.buffercount - 1)) { in saa7164_work_enchandler()
422 saa7164_work_enchandler_helper(port, rp); in saa7164_work_enchandler()
423 port->last_svc_rp = rp; in saa7164_work_enchandler()
431 if (print_histogram == port->nr) { in saa7164_work_enchandler()
432 saa7164_histogram_print(port, &port->irq_interval); in saa7164_work_enchandler()
433 saa7164_histogram_print(port, &port->svc_interval); in saa7164_work_enchandler()
434 saa7164_histogram_print(port, &port->irq_svc_interval); in saa7164_work_enchandler()
435 saa7164_histogram_print(port, &port->read_interval); in saa7164_work_enchandler()
436 saa7164_histogram_print(port, &port->poll_interval); in saa7164_work_enchandler()
438 print_histogram = 64 + port->nr; in saa7164_work_enchandler()
444 struct saa7164_port *port = in saa7164_work_vbihandler() local
446 struct saa7164_dev *dev = port->dev; in saa7164_work_vbihandler()
450 port->last_svc_msecs_diff = port->last_svc_msecs; in saa7164_work_vbihandler()
451 port->last_svc_msecs = jiffies_to_msecs(jiffies); in saa7164_work_vbihandler()
452 port->last_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_vbihandler()
453 port->last_svc_msecs_diff; in saa7164_work_vbihandler()
455 saa7164_histogram_update(&port->svc_interval, in saa7164_work_vbihandler()
456 port->last_svc_msecs_diff); in saa7164_work_vbihandler()
458 port->last_irq_svc_msecs_diff = port->last_svc_msecs - in saa7164_work_vbihandler()
459 port->last_irq_msecs; in saa7164_work_vbihandler()
461 saa7164_histogram_update(&port->irq_svc_interval, in saa7164_work_vbihandler()
462 port->last_irq_svc_msecs_diff); in saa7164_work_vbihandler()
467 port->last_svc_msecs_diff, in saa7164_work_vbihandler()
468 port->last_irq_svc_msecs_diff, in saa7164_work_vbihandler()
469 port->last_svc_wp, in saa7164_work_vbihandler()
470 port->last_svc_rp in saa7164_work_vbihandler()
474 wp = saa7164_readl(port->bufcounter); in saa7164_work_vbihandler()
475 if (wp > (port->hwcfg.buffercount - 1)) { in saa7164_work_vbihandler()
482 mcb = (port->hwcfg.buffercount - 1); in saa7164_work_vbihandler()
487 if (port->done_first_interrupt == 0) { in saa7164_work_vbihandler()
488 port->done_first_interrupt++; in saa7164_work_vbihandler()
491 rp = (port->last_svc_rp + 1) % 8; in saa7164_work_vbihandler()
493 if (rp > (port->hwcfg.buffercount - 1)) { in saa7164_work_vbihandler()
498 saa7164_work_enchandler_helper(port, rp); in saa7164_work_vbihandler()
499 port->last_svc_rp = rp; in saa7164_work_vbihandler()
507 if (print_histogram == port->nr) { in saa7164_work_vbihandler()
508 saa7164_histogram_print(port, &port->irq_interval); in saa7164_work_vbihandler()
509 saa7164_histogram_print(port, &port->svc_interval); in saa7164_work_vbihandler()
510 saa7164_histogram_print(port, &port->irq_svc_interval); in saa7164_work_vbihandler()
511 saa7164_histogram_print(port, &port->read_interval); in saa7164_work_vbihandler()
512 saa7164_histogram_print(port, &port->poll_interval); in saa7164_work_vbihandler()
514 print_histogram = 64 + port->nr; in saa7164_work_vbihandler()
528 struct saa7164_port *port = buf->port; in saa7164_buffer_deliver() local
531 dvb_dmx_swfilter_packets(&port->dvb.demux, (u8 *)buf->cpu, in saa7164_buffer_deliver()
536 static irqreturn_t saa7164_irq_vbi(struct saa7164_port *port) in saa7164_irq_vbi() argument
538 struct saa7164_dev *dev = port->dev; in saa7164_irq_vbi()
541 port->last_irq_msecs_diff = port->last_irq_msecs; in saa7164_irq_vbi()
544 port->last_irq_msecs = jiffies_to_msecs(jiffies); in saa7164_irq_vbi()
547 port->last_irq_msecs_diff = port->last_irq_msecs - in saa7164_irq_vbi()
548 port->last_irq_msecs_diff; in saa7164_irq_vbi()
550 saa7164_histogram_update(&port->irq_interval, in saa7164_irq_vbi()
551 port->last_irq_msecs_diff); in saa7164_irq_vbi()
554 port->last_irq_msecs_diff); in saa7164_irq_vbi()
557 schedule_work(&port->workenc); in saa7164_irq_vbi()
561 static irqreturn_t saa7164_irq_encoder(struct saa7164_port *port) in saa7164_irq_encoder() argument
563 struct saa7164_dev *dev = port->dev; in saa7164_irq_encoder()
566 port->last_irq_msecs_diff = port->last_irq_msecs; in saa7164_irq_encoder()
569 port->last_irq_msecs = jiffies_to_msecs(jiffies); in saa7164_irq_encoder()
572 port->last_irq_msecs_diff = port->last_irq_msecs - in saa7164_irq_encoder()
573 port->last_irq_msecs_diff; in saa7164_irq_encoder()
575 saa7164_histogram_update(&port->irq_interval, in saa7164_irq_encoder()
576 port->last_irq_msecs_diff); in saa7164_irq_encoder()
579 port->last_irq_msecs_diff); in saa7164_irq_encoder()
581 schedule_work(&port->workenc); in saa7164_irq_encoder()
585 static irqreturn_t saa7164_irq_ts(struct saa7164_port *port) in saa7164_irq_ts() argument
587 struct saa7164_dev *dev = port->dev; in saa7164_irq_ts()
593 wp = saa7164_readl(port->bufcounter); in saa7164_irq_ts()
594 if (wp > (port->hwcfg.buffercount - 1)) in saa7164_irq_ts()
599 rp = (port->hwcfg.buffercount - 1); in saa7164_irq_ts()
605 list_for_each_safe(c, n, &port->dmaqueue.list) { in saa7164_irq_ts()
607 if (i++ > port->hwcfg.buffercount) in saa7164_irq_ts()
916 struct saa7164_port *port = NULL; in saa7164_port_init() local
921 port = &dev->ports[portnr]; in saa7164_port_init()
923 port->dev = dev; in saa7164_port_init()
924 port->nr = portnr; in saa7164_port_init()
927 port->type = SAA7164_MPEG_DVB; in saa7164_port_init()
930 port->type = SAA7164_MPEG_ENCODER; in saa7164_port_init()
933 INIT_WORK(&port->workenc, saa7164_work_enchandler); in saa7164_port_init()
935 port->type = SAA7164_MPEG_VBI; in saa7164_port_init()
938 INIT_WORK(&port->workenc, saa7164_work_vbihandler); in saa7164_port_init()
943 mutex_init(&port->dvb.lock); in saa7164_port_init()
944 INIT_LIST_HEAD(&port->dmaqueue.list); in saa7164_port_init()
945 mutex_init(&port->dmaqueue_lock); in saa7164_port_init()
947 INIT_LIST_HEAD(&port->list_buf_used.list); in saa7164_port_init()
948 INIT_LIST_HEAD(&port->list_buf_free.list); in saa7164_port_init()
949 init_waitqueue_head(&port->wait_read); in saa7164_port_init()
952 saa7164_histogram_reset(&port->irq_interval, "irq intervals"); in saa7164_port_init()
953 saa7164_histogram_reset(&port->svc_interval, "deferred intervals"); in saa7164_port_init()
954 saa7164_histogram_reset(&port->irq_svc_interval, in saa7164_port_init()
956 saa7164_histogram_reset(&port->read_interval, in saa7164_port_init()
958 saa7164_histogram_reset(&port->poll_interval, in saa7164_port_init()