Hallo,
Soweit ich mich erinnern kann, hatte ich mit bulk Artefakte und unvollständige Aufnahmen.
Daher habe ich mit coherent_pool=4M getestet. Das hat zwar zunächst funktioniert, aber irgendwann war der auch voll und der Fehler trat wieder auf. Das scheint ein Fehler im Kernel zu sein, der mit 3.8.6 behoben ist. Details siehe lkm.
Der Patch, der den Fehler korrigiert, ist von Soeren Moch (danke, Soeren !!!):
"ehci.diff" (text/x-patch)]
--- linux-3.9.0-rc3-guru/drivers/usb/host/ehci-sched.c.orig 2013-03-21 17:36:21.000000000 +0100
+++ linux-3.9.0-rc3-guru/drivers/usb/host/ehci-sched.c 2013-03-21 17:38:56.000000000 +0100
@@ -1214,6 +1214,7 @@ itd_urb_transaction (
memset (itd, 0, sizeof *itd);
itd->itd_dma = itd_dma;
+ itd->frame = -1;
list_add (&itd->itd_list, &sched->td_list);
}
spin_unlock_irqrestore (&ehci->lock, flags);
@@ -1915,6 +1916,7 @@ sitd_urb_transaction (
memset (sitd, 0, sizeof *sitd);
sitd->sitd_dma = sitd_dma;
+ sitd->frame = -1;
list_add (&sitd->sitd_list, &iso_sched->td_list);
}
Im Kernel wurde der Patch leicht modifiziert (itd->frame = 9999;).
Ich habe diesen Kernel installiert teste jetzt mal damit.
- Markus