aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/uhci-hcd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/host/uhci-hcd.c')
-rw-r--r--drivers/usb/host/uhci-hcd.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 4f65b14e5e08..73db5569f57b 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -139,7 +139,6 @@ static void finish_reset(struct uhci_hcd *uhci)
139 uhci->port_c_suspend = uhci->resuming_ports = 0; 139 uhci->port_c_suspend = uhci->resuming_ports = 0;
140 uhci->rh_state = UHCI_RH_RESET; 140 uhci->rh_state = UHCI_RH_RESET;
141 uhci->is_stopped = UHCI_IS_STOPPED; 141 uhci->is_stopped = UHCI_IS_STOPPED;
142 uhci_to_hcd(uhci)->state = HC_STATE_HALT;
143 clear_bit(HCD_FLAG_POLL_RH, &uhci_to_hcd(uhci)->flags); 142 clear_bit(HCD_FLAG_POLL_RH, &uhci_to_hcd(uhci)->flags);
144 143
145 uhci->dead = 0; /* Full reset resurrects the controller */ 144 uhci->dead = 0; /* Full reset resurrects the controller */
@@ -188,10 +187,6 @@ static void configure_hc(struct uhci_hcd *uhci)
188 outw(uhci->frame_number & UHCI_MAX_SOF_NUMBER, 187 outw(uhci->frame_number & UHCI_MAX_SOF_NUMBER,
189 uhci->io_addr + USBFRNUM); 188 uhci->io_addr + USBFRNUM);
190 189
191 /* Mark controller as not halted before we enable interrupts */
192 uhci_to_hcd(uhci)->state = HC_STATE_SUSPENDED;
193 mb();
194
195 /* Enable PIRQ */ 190 /* Enable PIRQ */
196 pci_write_config_word(pdev, USBLEGSUP, USBLEGSUP_DEFAULT); 191 pci_write_config_word(pdev, USBLEGSUP, USBLEGSUP_DEFAULT);
197 192
@@ -360,7 +355,6 @@ __acquires(uhci->lock)
360 355
361static void start_rh(struct uhci_hcd *uhci) 356static void start_rh(struct uhci_hcd *uhci)
362{ 357{
363 uhci_to_hcd(uhci)->state = HC_STATE_RUNNING;
364 uhci->is_stopped = 0; 358 uhci->is_stopped = 0;
365 359
366 /* Mark it configured and running with a 64-byte max packet. 360 /* Mark it configured and running with a 64-byte max packet.
@@ -449,6 +443,7 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
449 lprintk(errbuf); 443 lprintk(errbuf);
450 } 444 }
451 uhci_hc_died(uhci); 445 uhci_hc_died(uhci);
446 usb_hc_died(hcd);
452 447
453 /* Force a callback in case there are 448 /* Force a callback in case there are
454 * pending unlinks */ 449 * pending unlinks */