USB: ohci: merge ohci_finish_controller_resume with ohci_resume
Merge ohci_finish_controller_resume with ohci_resume as suggested by Alan Stern. Since ohci_finish_controller_resume no longer exists, update the various OHCI drivers to call ohci_resume() instead. Some drivers used to set themselves the bit HCD_FLAG_HW_ACCESSIBLE, which is now handled by ohci_resume(). Acked-by: Jingoo Han <jg1.han@samsung.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
d4ae47dc56
commit
cfa49b4b88
@@ -316,48 +316,6 @@ static int ohci_bus_resume (struct usb_hcd *hcd)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Carry out the final steps of resuming the controller device */
|
||||
static void __maybe_unused ohci_finish_controller_resume(struct usb_hcd *hcd)
|
||||
{
|
||||
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
|
||||
int port;
|
||||
bool need_reinit = false;
|
||||
|
||||
/* See if the controller is already running or has been reset */
|
||||
ohci->hc_control = ohci_readl(ohci, &ohci->regs->control);
|
||||
if (ohci->hc_control & (OHCI_CTRL_IR | OHCI_SCHED_ENABLES)) {
|
||||
need_reinit = true;
|
||||
} else {
|
||||
switch (ohci->hc_control & OHCI_CTRL_HCFS) {
|
||||
case OHCI_USB_OPER:
|
||||
case OHCI_USB_RESET:
|
||||
need_reinit = true;
|
||||
}
|
||||
}
|
||||
|
||||
/* If needed, reinitialize and suspend the root hub */
|
||||
if (need_reinit) {
|
||||
spin_lock_irq(&ohci->lock);
|
||||
ohci_rh_resume(ohci);
|
||||
ohci_rh_suspend(ohci, 0);
|
||||
spin_unlock_irq(&ohci->lock);
|
||||
}
|
||||
|
||||
/* Normally just turn on port power and enable interrupts */
|
||||
else {
|
||||
ohci_dbg(ohci, "powerup ports\n");
|
||||
for (port = 0; port < ohci->num_ports; port++)
|
||||
ohci_writel(ohci, RH_PS_PPS,
|
||||
&ohci->regs->roothub.portstatus[port]);
|
||||
|
||||
ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrenable);
|
||||
ohci_readl(ohci, &ohci->regs->intrenable);
|
||||
msleep(20);
|
||||
}
|
||||
|
||||
usb_hcd_resume_root_hub(hcd);
|
||||
}
|
||||
|
||||
/* Carry out polling-, autostop-, and autoresume-related state changes */
|
||||
static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed,
|
||||
int any_connected, int rhsc_status)
|
||||
|
Reference in New Issue
Block a user