# 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.590   -> 1.591  
#	drivers/usb/host/uhci.c	1.38    -> 1.39   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/04/08	johannes@erdfelt.com	1.591
# [PATCH] uhci.c 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/host/uhci.c b/drivers/usb/host/uhci.c
--- a/drivers/usb/host/uhci.c	Mon Apr  8 15:49:21 2002
+++ b/drivers/usb/host/uhci.c	Mon Apr  8 15:49:21 2002
@@ -749,7 +749,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;
 	}
 
@@ -2742,6 +2742,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);
