Mailing List archive

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

[vdr] Re: unknwon picture type / error in data stream



On 28/06/2003 17:33 Thomas Bartschies wrote:

> You can add me to the list. For me, this happens only with recordings
> on my second card. Already changed cables, switched slots for the cards,
> primary device in vdr, made sure no irq sharing happens,  and cooling
> with a dedicated  60mm fan. No improvements yet.
>
> ...
>
> I also know that we're not alone. There was already a big thread, on some
> other forum I'm reading, about this. All people had 2 card Systems there.
> 
> Until now, IMHO I'm pretty sure this a driver problem.

Same here, but I don't think it's a DVB driver problem. Since it does
not occur on all systems, I believe that it is a hardware dependant PCI
timing problem.

Unfortunately, my SHUTTLE MV25N mainboard has a VIA APOLLO PLE133T
chipset, so the southbridge is a buggy VT82C686B :-((

Here are some links related to this bug (sorry, mostly German):
http://www.computer-tips-und-tricks.de/dch-faq/dchfaq-frameset.html?/dch-faq/kap02-3-7.html
http://www.au-ja.org/review-kt133a-1.phtml
 same in English, but not with all of the linked pages:
http://www.au-ja.org/review-kt133a-1-en.phtml
http://www.heise.de/newsticker/data/cp-10.06.01-001/
http://www.hardtecs4u.com/?id=1023813977,48683,ht4u.php

I don't know if and how this bug is addressed by newer linux kernels -
this bug is already known since 2001. Anyway, as far as I understood,
patches and bios updates only improve the PCI performance, but PCI
timing problems still persist with this chip.

Question to those of you having the problem: Does your mainboard use the
same chip? Here is a list of chipsets using the VT82C686B southbridge:
http://www.viaarena.com/?PageID=14

You may try to set the latency timer of the DVB cards to 128. In my
system, the problem seems be be gone after this change. Either edit the
saa7146_core.c in ../driver/av7110 or use the attached patch. I found
the following posting in the VDR-ML related to this:

http://www.linuxtv.org/mailinglists/linux-dvb/2003/01-2003/msg00108.html

Newer versions of the DVB driver set the latency timer to 64. Older
drivers don't set the latency, so it defaults to 32 in my system. The
explanations from Emard in the above link suggest to use 128. Maybe the
driver developers can explain this and if this really helps in this
special hardware envoironment. For testing, I put my DVB cards and
the HD of my VDR (i.e. exactly the same software) into an older system
(Intel RC440BX with 350MHz PII). I was not able to reproduce the error
with a latency of 64. However, setting to 32 locked the second card when
the first was recording. This also happens when I use higher latency
values than 128 in my SHUTTLE MV25N system. 'lspci -vvv' outputs for
both setups can be found here:
http://home.t-online.de/home/tb_electronic/vdr/tmp/lspci_via
http://home.t-online.de/home/tb_electronic/vdr/tmp/lspci_intel

BTW, my SHUTTLE MV25N system does not always have problems when the
latency is set to 64. Sometimes I can use any value between 16 and 128
and it works, sometimes I can reproduceable set the latency lower and
the problems immediately occur.

It would be interesting to know if increasing the latency cures other
systems as well if the buggy VIA southbridge chip is present. Here are
some more details of my system:

SHUTLLE MV25N mainboard, VIA PLE133T chipset, Intel Celeron 1.3GHz
2 DVB-S rev. 1.3
Linux kernel 2.4.19 (no distri, LFS)
VDR 1.2.1
DVB driver 20030617

Thomas







--- saa7146_core.c.bak	2003-06-17 22:12:00.000000000 +0200
+++ saa7146_core.c	2003-06-24 12:32:27.000000000 +0200
@@ -514,9 +514,9 @@
 
 	/* Set PCI latency timer */
 	pci_read_config_byte(saa->device, PCI_LATENCY_TIMER, &latency);
-	if (latency != 64) {
-		printk(KERN_INFO "saa7146_core.o: adjusting pci latency to 64\n");
-		pci_write_config_byte(saa->device, PCI_LATENCY_TIMER, 64);
+	if (latency != 128) {
+		printk(KERN_INFO "saa7146_core.o: adjusting pci latency to 128\n");
+		pci_write_config_byte(saa->device, PCI_LATENCY_TIMER, 128);
 	}
 
 	/* get clipping memory */








Home | Main Index | Thread Index