Zitat
Die Ursache für die DEBI-Interrupts sind Timeouts. Wenn solche Probleme auftreten, könnte man mal ein paar Waits beim Zugriff auf das DPRAM einfügen:
Diff
diff -r 6aa6656852cb linux/drivers/media/dvb/ttpci/av7110_hw.h
--- a/linux/drivers/media/dvb/ttpci/av7110_hw.h Wed Apr 16 13:13:15 2008 -0300
+++ b/linux/drivers/media/dvb/ttpci/av7110_hw.h Fri Apr 18 20:42:57 2008 +0200
@@ -5,9 +5,11 @@
/* DEBI transfer mode defs */
-#define DEBINOSWAP 0x000e0000
-#define DEBISWAB 0x001e0000
-#define DEBISWAP 0x002e0000
+#define DEBI_TIMEOUT 1
+
+#define DEBINOSWAP (0x000e0000 | ((DEBI_TIMEOUT) << 22))
+#define DEBISWAB (0x001e0000 | ((DEBI_TIMEOUT) << 22))
+#define DEBISWAP (0x002e0000 | ((DEBI_TIMEOUT) << 22))
#define ARM_WAIT_FREE (HZ)
#define ARM_WAIT_SHAKE (HZ/5)
diff -r 6aa6656852cb linux/include/media/saa7146.h
--- a/linux/include/media/saa7146.h Wed Apr 16 13:13:15 2008 -0300
+++ b/linux/include/media/saa7146.h Fri Apr 18 20:42:57 2008 +0200
@@ -208,7 +208,8 @@ int saa7146_wait_for_debi_done(struct sa
#define SAA7146_GPIO_OUTHI 0x50
/* debi defines */
-#define DEBINOSWAP 0x000e0000
+#define DEBI_TIMEOUT 1
+#define DEBINOSWAP (0x000e0000 | ((DEBI_TIMEOUT) << 22))
/* define for the register programming sequencer (rps) */
#define CMD_NOP 0x00000000 /* No operation */
Alles anzeigen
Gruß
e9hack