[linux-dvb] [BUG] changeset 9029 (http://linuxtv.org/hg/v4l-dvb/rev/aa3e5cc1d833)
xyzzy at speakeasy.org
Tue Feb 17 01:22:27 CET 2009
On Mon, 16 Feb 2009, Steven Toth wrote:
> > Hartmut, Oliver and Trent: Thanks for helping with this issue. I've just
> > reverted the changeset. We still need a fix at dm1105, au0828-dvb and maybe
> > other drivers that call the filtering routines inside IRQ's.
> Fix the demux, add a worker thread and allow drivers to call it directly.
> I'm not a big fan of videobuf_dvb or having each driver do it's own thing as an
> Fixing the demux... Would this require and extra buffer copy? probably, but it's
> a trade-off between the amount of spent during code management on a driver by
> driver basis vs wrestling with videobuf_dvb and all of problems highlighted on
> the ML over the last 2 years.
Have the driver copy the data into the demuxer from the interrupt handler
with irqs disabled? That's still too much.
The right way to do it is to have a queue of DMA buffers. In the interrupt
handler the driver takes the completed DMA buffer off the "to DMA" queue
and puts it in the "to process" queue. The driver should not copy and
cetainly not demux the data from the interrupt handler.
More information about the linux-dvb