Mark Bryars wrote:
>
> Doing a bit of research into this, the last lockup I had was after a
> 0x1C000 byte size DMA transfer, thats pretty big compared to the usual ones
>
> After a bit of sampling I see DMA size distribution to be mainly in the
> 0x2800 to 0x8000 region, a few crashes i provoked by setting the latency
> down to 1, had transfers set up just beforehand that were bigger than
> this: 0x8800, 0x12000, 0xE000, 0xA000
>
> I was looking at the code to see if it would be possible to fallback to
> a PIO mode transfer for larger than 0x8000 sized transfers. Would this
> be possible to do easily? Or how about multiple smaller DMA transfers?
Further to this, I added a very simple size cap on dma transfers, to
only get the first 32k of data, and although, of course, the stream
was corrupted (not as much as you might expect), even setting the pci
latency to 1, I did not provoke any DMA TIMEOUT crashes (although its
a currently brief test). I upped the limit to 128k as this would get
apparently everything, and 5 cards locked up in about a minute. I
really feel the dropping to PIO(or multiple smaller DMA) for >32k
transfers could be the solution we are waiting for.
I have also seen some really large dma transfers try to take place,
(>1Meg) the logging is lost so I do not know if they were successful.
If this is important I can reproduce.
Regards,
Mark Bryars.
--- ./drivers/media/video/ivtv/ivtv-irq.c 2007-07-25
16:27:36.083267224 +0100
+++ ./drivers/media/video/ivtv/ivtv-irq.c.orig 2007-07-25
16:27:47.649508888 +0100
@@ -124,7 +124,6 @@
offset = data[1];
size = data[2];
s->dma_pts = 0;
- if (size>0x8000) size=0x8000;
break;
case IVTV_ENC_STREAM_TYPE_YUV:
--
Mark Bryars
Product Development Engineer
ETV Interactive Ltd
Logie Court
Stirling University Innovation Park
Stirling
Scotland, UK
FK9 4NF
T: +44 (0) 1786 455150
F: +44 (0) 1786 455179
W: www.etvinteractive.com
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel