Hi all,

First of all I'd like to thank the people who tested these patches! It 
is clear that the patches improve matters for the DMA 0x0000000b error 
but that it is still not enough to get a fully stable system for some 
people.

Based on these results I have committed the patch to the various ivtv 
branches and I will be making new releases next weekend (unless some 
serious errors crop up).

The remaining DMA error ('ENC: REG_DMAXFER 2 wait failed') is much more 
difficult. Based on all the information I have the root cause is either 
buggy code in the firmware and/or buggy DMA hardware. But the current 
DMA handling in our driver makes it (much?) more likely that this bug 
is hit.

Basically the DMA engine of the cx23415/6 seems to be not very good in 
detecting and handling DMA anomalies (DMA errors, drivers that do not 
read DMA fast enough, things like that). So when there is a large 
amount of DMA activity in the system, or if interrupts are blocked for 
a long time (I suspect CPU frequency changing here) then the driver 
can't handle the DMA fast enough and the firmware seems to get confused 
at some point (DMA queue overflowing? I've no idea). In the end the 
firmware seems to give up, stops DMA and simply hangs.

Now, the current DMA code in the driver is not written to be as fast as 
possible as it is running in a user-space thread, contains sleeps and 
basically I don't trust it very much to behave correctly under high 
load conditions. Also I now know much better how it should work.

Unfortunately, fixing this is not a matter of a quick hack, it means 
some serious reorganization. That's OK, I've wanted to do that for a 
long time and now seems to be a good time to do this. So I've started a 
serious clean up job in the current ivtv trunk. Hopefully at the end we 
will have a driver that is much more robust in high load situations.

The older drivers (up to ivtv-0.8 for kernel 2.6.18) will be released 
with the fix for the DMA 0x0000000b error, which should be a big 
improvement for many people. For those where this is not sufficient you 
will have to wait until I'm done with the reorganization effort. 
Whether that will be backported to older versions I really cannot say 
at this moment.

Regards,

        Hans

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to