On 07/05/11 23:34, Ralph Metzler wrote:
> Before blaming packet loss on the CI data path also please make
> certain that you have no buffer overflows in the input part of
> the sec device.
> In the ngene driver you can e.g. add a printk in tsin_exchange():
>
> if (dvb_ringbuffer_free(&dev->tsin_rbuf) > len) {
> ...
> } else
> printk ("buffer overflow !!!!\n");
Ralph,
void *tsin_exchange(void *priv, void *buf, u32 len, u32 clock, u32 flags)
{
struct ngene_channel *chan = priv;
struct ngene *dev = chan->dev;
if (flags & DF_SWAP32)
swap_buffer(buf, len);
if (dev->ci.en && chan->number == 2) {
if (dvb_ringbuffer_free(&dev->tsin_rbuf) > len) {
dvb_ringbuffer_write(&dev->tsin_rbuf, buf, len);
wake_up_interruptible(&dev->tsin_rbuf.queue);
} else
printk (KERN_WARNING "ngene transport interface:
tsin_exchange: buffer overflow !!!!\n");
return 0;
}
if (chan->users > 0) {
dvb_dmx_swfilter(&chan->demux, buf, len);
}
return NULL;
}
just prints the buffer overflow warning just after the module is loaded,
no other action made.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html