# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.391 -> 1.392 # drivers/usb/uhci.c 1.27 -> 1.28 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/04/08 johannes@erdfelt.com 1.392 # [PATCH] uhci.c 2.4.19-pre6 FSBR speed problem # # 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. # -------------------------------------------- # diff -Nru a/drivers/usb/uhci.c b/drivers/usb/uhci.c --- a/drivers/usb/uhci.c Mon Apr 8 09:45:36 2002 +++ b/drivers/usb/uhci.c Mon Apr 8 09:45:36 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; } @@ -2732,6 +2732,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);