I looked into this a while back. I finally got so frustrated that I just used the PIO mode workaround. After my investigation, all I can say is that it doesn't appear to have anything to do with the registers that are being set for DMA and is entirely internal. It isn't anything wrong with the code. I printked many times and found that there are no indications on the DMA related registers of a fail before the DMA is started (so you can't avoid it). It doesn't have anything to do with locking... I tried all kinds of spinlock craziness. I tried disabling the recovery code (it just redoes the DMA) as well as having it do the recovery code twice. Niether worked. My conclusion is that there are only a few other ways to go about this:

Check ALL the registers to see if something shows up. Not just the DMA related ones. The hope is that there IS some indicator of a fail before it happens... or that there is a consistant change in state after a fail that can be corrected to allow the DMA engine to proceed correctly.

Redoing the DMA transfer (as it is currently) obviously has no effect. The only other way to recover that I am aware of is to see if the information in the DMA buffers can be salvaged in some way. I asked for help on how I could peek into the DMA buffers (the ones in system memory) because I couldn't figure out how to do this myself. I don't think anyone replied though :/

On 8/9/06, Steven Ellis <[EMAIL PROTECTED]> wrote:
Hans Verkuil wrote:
> Hi Steven,
>
> Is it possible to talk this over in the ivtv-dev channel of
> irc://irc.freenode.net/ivtv-dev? It is probably easier to discuss this
> on that IRC channel, at least initially.
>
> I can be on that channel between 8 pm and midnight tonight or tomorrow,
> my timezone is GMT+2.
>
>
Ok i'll add in the channel for my IRC client. I'm GMT + 12 (Auckland NZ)
but I'm on conference calls the next couple of mornings for my "other"
job so i'll probably miss you. I'll aim for Thursday night (you) Friday
morning (me) but I can't be sure at the moment.
> Let me know if and when you can be on IRC. If it's not possible, then we
> continue by email.
>
Just a quick pointer at the best code base for a DMA level comparison
would be useful.

Steve

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

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

Reply via email to