The dangers of not ensuring important fields are properly set.

Some, if not all, of the speed problems with uhci.c were caused because
some important fields were not set and as a result, FSBR was never
turned on.

This patch also ensures is_suspended is set to 0 properly. This could
cause some problems suspending the HC when no devices are plugged in.

Greg, please apply to 2.4 and 2.5.

JE

--- linux-2.4.19-pre6.orig/drivers/usb/uhci.c   Sun Apr  7 16:21:04 2002
+++ linux-2.4.19-pre6/drivers/usb/uhci.c        Sun Apr  7 16:24:03 2002
@@ -748,7 +748,7 @@
 
        if ((!(urb->transfer_flags & USB_NO_FSBR)) && !urbp->fsbr) {
                urbp->fsbr = 1;
-               if (!uhci->fsbr++)
+               if (!uhci->fsbr++ && !uhci->fsbrtimeout)
                        uhci->skel_term_qh->link = 
uhci->skel_hs_control_qh->dma_handle | UHCI_PTR_QH;
        }
 
@@ -2739,6 +2739,11 @@
        /* Reset here so we don't get any interrupts from an old setup */
        /*  or broken setup */
        reset_hc(uhci);
+
+       uhci->fsbr = 0;
+       uhci->fsbrtimeout = 0;
+
+       uhci->is_suspended = 0;
 
        spin_lock_init(&uhci->qh_remove_list_lock);
        INIT_LIST_HEAD(&uhci->qh_remove_list);

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to