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