On Tue, 20 Oct 2009, [UTF-8] Ozan Çağlayan wrote:

> > Hi. First the backtrace:
> >
> > [  149.510272] uvcvideo: Found UVC 1.00 device BisonCam, NB Pro (5986:0203)
> > [  149.515017] input: BisonCam, NB Pro as
> > /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/input/input10
> > [  149.515588] usbcore: registered new interface driver uvcvideo
> > [  149.516247] USB Video Class driver (v0.1.0)
> > [  149.658012] Pid: 1137, comm: hald-probe-vide Tainted: G         C
> > 2.6.31.4-128 #2
> > [  149.658012] Call Trace:
> > [  149.658012]  [<c0373f62>] handshake_on_error_set_halt+0x36/0x65
> > [  149.658012]  [<c0374073>] enable_periodic+0x32/0x72
> > [  149.658012]  [<c03741c9>] qh_link_periodic+0x116/0x11e
> > [  149.658012]  [<c0374665>] qh_schedule+0x120/0x12c
> > [  149.658012]  [<c03775d0>] intr_submit+0x8c/0x124
> > [  149.658012]  [<c0377d2a>] ehci_urb_enqueue+0x7a/0xa5
...
> > [  149.658012] ehci_hcd 0000:00:1d.7: force halt; handhake f7c66024
> > 00004000 00000000 -> -110
> >
> > And the usbmon trace during "modprobe uvcvideo" can be found at:
> >
> > http://cekirdek.pardus.org.tr/~ozan/ivir/logs/usbmon.trace.bad
> >
> > I also manage to not reproduce the problem so it's kinda racy. You can
> > find good/bad dmesg/usbmon traces at:
> >
> > http://cekirdek.pardus.org.tr/~ozan/ivir/logs
> >   
> ping! in case it's got lost between high traffic :)

Yes, sorry, my email client tends to hide messages with non-ASCII 
characters in the From: address.  It's unforunate.  :-(

I can't tell exactly what's wrong, but I've got a hunch that the patch 
below might help.  If it doesn't, send another dmesg log but this time 
with CONFIG_USB_DEBUG enabled in the kernel.

Alan Stern


Index: usb-2.6/drivers/usb/host/ehci-q.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/ehci-q.c
+++ usb-2.6/drivers/usb/host/ehci-q.c
@@ -818,6 +818,9 @@ qh_make (
                                dbg ("intr period %d uframes, NYET!",
                                                urb->interval);
                                goto done;
+                       } else if (qh->period > ehci->periodic_size) {
+                               qh->period = ehci->periodic_size;
+                               urb->interval = qh->period << 3;
                        }
                } else {
                        int             think_time;
@@ -840,6 +843,10 @@ qh_make (
                                        usb_calc_bus_time (urb->dev->speed,
                                        is_input, 0, max_packet (maxp)));
                        qh->period = urb->interval;
+                       if (qh->period > ehci->periodic_size) {
+                               qh->period = ehci->periodic_size;
+                               urb->interval = qh->period;
+                       }
                }
        }
 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to