У меня на RT-N10U при подключенной камере постоянно вываливается ошибка(r3722 и старше):
Failed to resubmit video URB (-27)
Ну и соответственно камера перестает отдавать фреймы в EHCI.
Это старая проблема, упоминавшаяся в теме про камеры.
Алан Стерн в переписке упоминает, что проблема в том, что контроллер EHCI иногда путается с нумерацией фреймов с камеры, то есть проблема в основном в аппаратной реализации EHCI.
Алан Стерн предложил патчик, который конкретно показывает ошибку, и пытается заново запустить передачу фреймов.
Вот оригинал патча:
я внедрил в драйвер EHCI данный патч, в результате вместо ошибкиCode:Index: usb-3.1/drivers/usb/host/ehci-sched.c
===================================================================
--- usb-3.1.orig/drivers/usb/host/ehci-sched.c
+++ usb-3.1/drivers/usb/host/ehci-sched.c
@@ -2293,6 +2293,7 @@ scan_periodic (struct ehci_hcd *ehci)
union ehci_shadow q, *q_p;
__hc32 type, *hw_p;
unsigned incomplete = false;
+int oclock = -1;
frame = now_uframe >> 3;
@@ -2373,6 +2374,15 @@ restart:
*hw_p = ehci->dummy->qh_dma;
type = Q_NEXT_TYPE(ehci, q.itd->hw_next);
wmb();
+
+if (q.itd->hw_transaction[7] & ITD_ACTIVE(ehci)) {
+ ehci_info(ehci, "Bad iTD frame %u uf %u index0,7 %u %u startf %d\n",
+ frame, uf, q.itd->index[0], q.itd->index[7],
+ q.itd->urb->start_frame);
+ ehci_info(ehci, " clockf %u clockuf %u nowuf %u oclock %d",
+ clock_frame, clock, now_uframe, oclock);
+}
+
modified = itd_complete (ehci, q.itd);
q = *q_p;
break;
@@ -2460,6 +2470,7 @@ restart:
break;
/* rescan the rest of this frame, then ... */
+oclock = clock;
clock = now;
clock_frame = clock >> 3;
if (ehci->clock_frame != clock_frame) {
Failed to resubmit video URB (-27)
получаю вывод в лог:то есть ошибки хоть и сыплются, но камера продолжает работать - это проверял удаленно.Code:Jan 10 06:33:47 MJPG-streamer [344]: Using V4L2 device.: /dev/video0
Jan 10 06:33:47 MJPG-streamer [344]: Desired Resolution: 640 x 480
Jan 10 06:33:47 MJPG-streamer [344]: Frames Per Second.: 1
Jan 10 06:33:47 MJPG-streamer [344]: Format............: YUV
Jan 10 06:33:47 MJPG-streamer [344]: JPEG Quality......: 50
Jan 10 06:33:47 kernel: uvcvideo: Failed to query (135) UVC control 6 (unit 1) : -32 (exp. 2).
Jan 10 06:33:47 MJPG-streamer [344]: www-folder-path...: disabled
Jan 10 06:33:47 MJPG-streamer [344]: HTTP TCP port.....: 7776
Jan 10 06:33:47 MJPG-streamer [344]: commands..........: enabled
Jan 10 06:33:47 MJPG-streamer [344]: output folder.....: /tmp/mnt/disca_1
Jan 10 06:33:47 MJPG-streamer [344]: delay after save..: 1000
Jan 10 06:33:47 MJPG-streamer [344]: ringbuffer size...: no ringbuffer
Jan 10 06:33:47 MJPG-streamer [344]: command...........: disabled
Jan 10 06:33:47 MJPG-streamer [344]: starting input plugin
Jan 10 06:33:47 MJPG-streamer [344]: starting output plugin: output_http.so (ID: 00)
Jan 10 06:33:47 MJPG-streamer [344]: starting output plugin: output_file.so (ID: 01)
Jan 10 10:32:43 kernel: ehci_hcd 0000:00:04.1: Bad iTD frame 470 uf 0 index0,7 4294967295 3 startf 3764
Jan 10 11:59:52 kernel: ehci_hcd 0000:00:04.1: clockf 471 clockuf 3769 nowuf 3760 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 281 uf 0 index0,7 0 7 startf 2248
Jan 10 12:02:49 kernel: ehci_hcd 0000:00:04.1: clockf 285 clockuf 2280 nowuf 2248 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 251 uf 0 index0,7 4294967295 4 startf 2011
Jan 10 14:23:12 kernel: ehci_hcd 0000:00:04.1: clockf 252 clockuf 2017 nowuf 2008 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 346 uf 0 index0,7 0 7 startf 2768
Jan 10 14:33:47 ntp client: Synchronizing time with pool.ntp.org...
Jan 10 14:40:44 kernel: ehci_hcd 0000:00:04.1: clockf 350 clockuf 2800 nowuf 2768 oclock -1<6>ehci_hcd 0000:00:04.1: Bad iTD frame 498 uf 0 index0,7 4294967295 4 startf 3987
Ребята, прошу добавить патч в прошивку.
Ветка обсуждения http://www.spinics.net/lists/linux-usb/msg52342.html

