Skip to content

Commit

Permalink
[PATCH] Fix hcd->state assignments in uhci-hcd
Browse files Browse the repository at this point in the history
This patch (as581) changes the assignments to hcd->state in the uhci-hcd
driver.  It fixes part of bugzilla entry #5227.  The problem was revealed
by David's large suite of USB suspend/resume patches; this patch should go
to Linus at the same time those do.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Alan Stern authored and Greg Kroah-Hartman committed Oct 28, 2005
1 parent cb97c5c commit f37be9b
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/usb/host/uhci-hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,8 @@ static void configure_hc(struct uhci_hcd *uhci)
/* Set the current frame number */
outw(uhci->frame_number, uhci->io_addr + USBFRNUM);

/* Mark controller as running before we enable interrupts */
uhci_to_hcd(uhci)->state = HC_STATE_RUNNING;
/* Mark controller as not halted before we enable interrupts */
uhci_to_hcd(uhci)->state = HC_STATE_SUSPENDED;
mb();

/* Enable PIRQ */
Expand Down Expand Up @@ -263,6 +263,7 @@ __acquires(uhci->lock)

static void start_rh(struct uhci_hcd *uhci)
{
uhci_to_hcd(uhci)->state = HC_STATE_RUNNING;
uhci->is_stopped = 0;
smp_wmb();

Expand Down Expand Up @@ -708,7 +709,6 @@ static int uhci_suspend(struct usb_hcd *hcd, pm_message_t message)

if (uhci->rh_state > UHCI_RH_SUSPENDED) {
dev_warn(uhci_dev(uhci), "Root hub isn't suspended!\n");
hcd->state = HC_STATE_RUNNING;
rc = -EBUSY;
goto done;
};
Expand Down

0 comments on commit f37be9b

Please sign in to comment.