Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Patch: fidbirq() with recovery after lost intr



Marian Durkovic writes:
 > 1) in my patched version, there are several modifications:
 > 
 > I'm setting up the card with:
 > 
 >  saa7146_write(saa->mem, DD1_INIT, 0x020006c0);
 > 
 > Then, in interrupt handler I'm reading the actual field ID from the card:
 > 
 >    field=0x80&saa7146_read(av7110->saa_mem, PSR);
 > 
 > as opposite to the current code, which is changing[B DD1_INIT in every
 > fidbirq() call. 

No, your "new" code above is the same as in the old main driver branch
and my current driver version. It has been there for many months.

 
 > With the current code, I've indeed seen calls to fidbirq with DMA pointer
 > below the end of the field, however, with the above modifications I've
 > not seen any corrupted data. 


OK, I think I did the DMA pointer stuff before changing to reading 
the field ID.
I'll see if I also do not have any "lagging DMA pointers" anymore.

 
 > I suspect problems you describe might appear when you write DD1_INIT for e.g. 
 > field 1 althouth the DMA is in field 0. Thus you need to check the real
 > DMA pointer in order to have real data. However, I suppose the card is
 > giving me always the correct field ID, so there's no packet corruption.

Do you also check the actual transport stream for garbled data?
Usually checking the continuity counter will show suffice to
see such problems.

 
 > Could you please test my modification with your setup?

OK, it did not show up in my tests now. 
But I have a completely different board now from when the problems
occured. The problem also existed for other people and was
discussed on the mailing list. 
Check the list logs sometime around March to May 2002. 


 
 > 2) In case of missed interrupt - are you sure that the DMA is immediately
 > overwriting the old half-buffer? During debugging I've seen a lot of
 > occurencies when during the oldposition was below the new one,
 > e.g.   
 > 
 > TSF=1  DMApos=96256 oldpos=95880
 > 
 > however the data were intact (the old ones).


You then transferred the data at 95880 and it was still the old data?



Ralph



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index